{
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之间取值