DoDataExchange(CDataExchange *pDX)作用是什么?

94 阅读1分钟
{  
     CDialog::DoDataExchange(pDX);

  
     //{{AFX_DATA_MAP(CFtpDialog)  
     DDX_Control(pDX, IDC_NAME, m_name);  
     DDX_Text(pDX, IDC_AGE, m_nAge);  
     DDV_MinMaxInt(pDX, m_nAge, 1, 100);  
     //}}AFX_DATA_MAP   
}

对话框的数据交换是指如下两种操作:
一是将内存数据写入对应的控制窗口
一是从控制窗口中读取相应的数据并存储于内存变量中
DoDataExchange只有一个参数,即一个CDataExchange对象的指针pDX。在该函数中调用了DDX函数来完成数据交换,调用DDV函数来进行数据有效检查。 当程序需要交换数据时,不要直接调用DoDataExchange函数,而应该调用CWnd::UpdateData。UpdataData函数内部调用了DoDataExchange。该函数只有一个布尔型参数,它决定了数据传送的方向。调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件 以上函数,DDX的含义: DDX_Control 表示将 IDC_NAME 子窗口的内容传输到m_name,或者是将m_name的值传输到IDC_NAME子窗口
DDX_Text    表示把 IDC_AGE 子窗口的内容按整数类型保存到 m_nAge,或者将m_nAge的值传输到IDC_AGE窗口更新显示
DDV_MinMaxInt 表示m_nAge应该在1和100之间取值