在类向导中为控件添加相应的变量时,classwizard会为控件和变量建立一个相应的关联,下面以EditBox为例来说明:
选中Edit Control控件,鼠标右击,选择添加变量,选择变量类型为value,输入变量名称,权限为private,点击确定按钮。
上述操作的过程也可由开发者手动打入代码中,在代码中反映如下:
类的头文件:
private:
CString strFilePath;
类的实现文件:
void XxxDlg::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Text(pDX, IDC_FILEPATH_EDIT, strFilePath);
}
注:上面的DoDataExchange 函数其实是为了实现一项数据动态绑定技术,DDX_XXX函数才是真正实现动态绑定技术的函数,该函数在MFC\Include\AFXDD_.H中声明。
此时即可在需要用的函数中使用UpdateData函数,其中
Updatedata(TRUE) 表示将控件的值赋值给成员变量,即从窗口编辑框中读入数据;
Updatedata(FALSE) 表示将成员变量的值赋值给控件,将数据从窗口显示。
举例:
给类添加俩个映射函数,其中OnBnClickedReferenceButton()为点击参照按钮对应的函数,OnEnChangeFilepathEdit()为编辑框内容变化即被