在使用CFileDialog打开一个文件对话框的时候,在该对话框返回的时候,主对话框会自动调用UpdateData(FALSE);
m_edtSearchText = “Test1”;
((CEdit *)GetDlgItem(IDC_EDT_FILE_NAME))->SetWindowText("Test2");//第一处
MessageBox("","");//第二处
if(IDOK == dlg.DoModal())//第三处
{
((CEdit *)GetDlgItem(IDC_EDT_FILE_NAME))->SetWindowText(“Test2”);
}
//第四处
在如上代码调用时,结果是 “Test1”,并非我们期待的Test2
在第二处查看控件IDC_EDT_FILE_NAME显示的是Test2
在第三处查看控件IDC_EDT_FILE_NAME显示的是Test1
在第四处查看控件IDC_EDT_FILE_NAME显示的是Test1
通过结果可以说明,在DoModal的时候,如果窗体遮挡住原先的界面,则显示结果非预期,因为在DoModal消失的一刹那,要更新界面的东西
如果DoModal的时候,没有遮挡住原先的窗体界面,则结果是预期的