M FC 编辑框的数据交换 分类: Win 程序开发2009-11-02 10:26805人阅读评论(0)收藏举报 对话框数据交换指以下两种动作,或者是把内存数据写入对应的控制窗口,或者是从控制窗口读取数据并保存到内存变量中
MFC 为了简化这些操作,以CDataExchange 类和一些数据交换函数为基础,提供了一套数据交换和校验的机制
数据交换的方法 首先,定义保存数据的内存变量──给对话框添加成员变量,每个控制窗口可以对应一个成员变量,或者是控制窗口类型,或者是控制窗口表示的数据的类型
例如,对于对话框的一个编辑控制窗口,可以定义一个 CEdit 类型的成员变量,或者一个 CString 类型的成员变量
其次,覆盖对话框的虚拟函数DoDataExchange,实现数据交换和验证
ClassWizard 可以协助程序员自动地添加成员变量,修改 DoDataExchange
例如,一个对话框有两个控制窗口,其中的一个编辑框表示姓名,ID 是IDC_NAME,另一个编辑框表示年龄,ID 是IDC_AGE,ClassWizard 添加如下的成员变量: // Dialog Data //{{AFX_DATA(CExDialog) enum { IDD = IDD_DIALOG2 }; CEdit m_name; int m_iAge; //}}AFX_DATA 使用 ClassWizard 添加成员变量中,一个定义为 CEdit,另一个定义为 int
这些定义被“//{{AFX_DATA”和“//}}AFX_DATA”引用,表示是ClassWizard 添加的,程序员不必修改它们
相应的DoDataExchange 的实现如下: void CExDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExc