问题描述:
新建了一个对话框程序,要实现的功能是点击开始时再弹出一个对话框,代码如下:
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.cpp
BOOL
MyForm::OnInitDialog()
{
CDialog::OnInitDialog();
SetDlgItemText(IDC_STATIC_PAGES, szPageText);
return
TRUE;
}
void
CModelDialogTestDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
MyForm form;
form.szPageText = _T(
"Aa"
);
form.DoModal();
}