C++ Code
1
2 3 4 5 6 7 8 9 10 11 |
void
CLoginDialog::DoDataExchange(CDataExchange* pDX)
{ CDialog::DoDataExchange(pDX); //处理MFC默认的数据交换 //下面的代码处理控件与控件变量之间的数据交换,一般由MFC自动添加 //{{AFX_DATA_MAP(CLoginDialog) //处理控件IDC_LOGINNAME和变量m_szLoginName之间的数据交换 //DDX_Text表明是进行文本数据交换 DDX_Text(pDX, IDC_LOGINNAME, m_szLoginName); //处理控件IDC_PASSWORD和变量m_szPassword之间的数据交换 DDX_Text(pDX, IDC_PASSWORD, m_szPassword); //}}AFX_DATA_MAP
控件和控件变量之间的数据交换并非自动完成的,即DoDataExchange()
函数不是自动被调用的。例如在“用户名”输入框中输入字符串时,m_szLoginName的值并 不随之改变,需要调用CDialog::UpdateData()函数才能做到从控件到控件变量或者从控件变 量到控件的数据传送。 CDialog::UpdateData()函数的原型为: BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); bSaveAndValidate参数用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE 表示从变量传给数据。 CDialog::UpdateData()函数的返回值用于确定操作是否成功,为FALSE表示不成功。
//清除对话框中的输入
m_szLoginName = ""; m_szPassword = ""; //根据控件变量设置对话框的控件的值 UpdateData(FALSE); |