问题描述:新建了一个对话框程序,要实现的功能是点击开始时再弹出一个对话框,代码如下:
C/C++ code
|
1
2
3
4
5
6
7
8
9
|
void CModelDialogTestDlg::OnBnClickedOk()
{ // TODO: 在此添加控件通知处理程序代码
MyForm* form=new MyForm();
form->DoModal();
//Pages是CStatic类型的控件
form->Pages.SetWindowTextA("da");
} |
但是运行到 SetWindowTextA 时会报错,如图:
调换了下执行顺序,还是报同样的错误
C/C++ code
|
1
2
3
4
5
6
7
8
|
void CModelDialogTestDlg::OnBnClickedOk()
{ // TODO: 在此添加控件通知处理程序代码
MyForm* form=new MyForm();
//Pages是CStatic类型的控件
form->Pages.SetWindowTextA("da");
form->DoModal();
} |
如果用非模态对话框的话,就可以正常使用SetWindowTextA函数。这是什么原因?模态对话框的控件要怎么
//MyForm.h
public:
CString szPageText;
//MyForm.cppBOOL MyForm::OnInitDialog()
{ CDialog::OnInitDialog();
SetDlgItemText(IDC_STATIC_PAGES, szPageText);
return TRUE;
}void CModelDialogTestDlg::OnBnClickedOk()
{ // TODO: 在此添加控件通知处理程序代码
MyForm form;
form.szPageText = _T("Aa");
form.DoModal();
}