{
CDialog::DoDataExchange(pDX); //处理MFC 默认的数据jiāo换
//下面的代码处理控件与控件变量之间的数据jiāo换,一般由MFC 自动添加
//{{AFX_DATA_MAP(CLoginDialog)
//处理控件IDC_LOGINNAME 和变量m_szLoginNcom 之间的数据jiāo换
//DDX_Text 表明是进行文本数据jiāo换
DDX_Text(pDX, IDC_LOGINNAME, m_szLoginNcom);
//处理控件IDC_PASSWORD 和变量m_szPassword 之间的数据jiāo换
DDX_Text(pDX, IDC_PASSWORD, m_szPassword);
//}}AFX_DATA_MAP
}
MFC 提供了处理控件与控件变量之间的数据jiāo换的机制,因此在代码中访问控件的属
xìng,就可以直接通过访问控件变量进行。如实例Sample4_1 运行时,打开登录对话框,在“用
户名”输入框中输入字符串,通过CLoginDialog::DoDataExchange()函数,m_szLoginNcom
就自动保存所有输入的字符串值,反之如果程序运行时修改了m_szLoginNcom,则通过
CLoginDialog::DoDataExchange()函数,“用户名”输入框就会显示m_szLoginNcom 的值。
这里需要注意,控件和控件变量之间的数据jiāo换并非自动完成的,即DoDataExchange()
函数不是自动被调用的。例如在“用户名”输入框中输入字符串时,m_szLoginNcom 的值并
不随之改变,需要调用CDialog::UpdateData()函数才能做到从控件到控件变量或者从控件变
量到控件的数据传送。
CDialog::UpdateData()函数的原型为:
BOOL UpdateData(
BOOL bSaveAndValidate = TRUE
);
bSaveAndValidate 参数用于指示数据传输的方向,TRUE 表示从控件传给变量,FALSE
表示从变量传给数据。
CDialog::UpdateData()函数的返回值用于确定cāo作是否成功,为FALSE 表示不成功。
在实例Sample4_1 中,如果要通过控件变量访问“用户名”和“密码”两个输入框的输
入值,可以用如下代码:
UpdateData(); //参数默认值为TRUE,用于保存对话框的控件值
//验证用户名和密码
枫叶文学网www.fywxw.com
第4 章 对话框
·71·
if (m_szLoginNcom == "user" && m_szPassword == "test1234")
{
//验证通过,并提示用户
??
}
如果要设置“用户名”和“密码”两个输入框的值,则可以用如下代码: