模态对话框上的静态文本控件的赋值有关问题
模态对话框上的静态文本控件的赋值问题
新建了一个对话框程序,要实现的功能是点击开始时再弹出一个对话框,代码如下:
但是运行到 SetWindowTextA 时会报错,如图:

调换了下执行顺序,还是报同样的错误
如果用非模态对话框的话,就可以正常使用SetWindowTextA函数。这是什么原因?模态对话框的控件要怎么赋值?求解
P.S.项目一定要要用模态对话框来实现
------解决方案--------------------
如果是句柄的问题,可以试试如下 代码:
HWND h_Page=::GetDlgItem(this->m_hWnd,IDD);//IDD是你控件的ID
CStatic* totalPages=(CStatic*)FromHandle(h_Page);
totalPages->SetWindowTextW(“你的数据 ”);
------解决方案--------------------
------解决方案--------------------
为什么一定要在CModelDialogTestDlg里调用form->Pages.SetWindowTextA,这样设计是非常不好,应该要在MyForm类的里才调用OnInitDialog()调用Pages.SetWindowTextA的,先改成这样先,问题也少点,省得句柄什么乱七八糟的问题
新建了一个对话框程序,要实现的功能是点击开始时再弹出一个对话框,代码如下:
void CModelDialogTestDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
MyForm* form=new MyForm();
form->DoModal();
//Pages是CStatic类型的控件
form->Pages.SetWindowTextA("da");
}
但是运行到 SetWindowTextA 时会报错,如图:
调换了下执行顺序,还是报同样的错误
void CModelDialogTestDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
MyForm* form=new MyForm();
//Pages是CStatic类型的控件
form->Pages.SetWindowTextA("da");
form->DoModal();
}
如果用非模态对话框的话,就可以正常使用SetWindowTextA函数。这是什么原因?模态对话框的控件要怎么赋值?求解
P.S.项目一定要要用模态对话框来实现
------解决方案--------------------
如果是句柄的问题,可以试试如下 代码:
HWND h_Page=::GetDlgItem(this->m_hWnd,IDD);//IDD是你控件的ID
CStatic* totalPages=(CStatic*)FromHandle(h_Page);
totalPages->SetWindowTextW(“你的数据 ”);
------解决方案--------------------
//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();
}
------解决方案--------------------
为什么一定要在CModelDialogTestDlg里调用form->Pages.SetWindowTextA,这样设计是非常不好,应该要在MyForm类的里才调用OnInitDialog()调用Pages.SetWindowTextA的,先改成这样先,问题也少点,省得句柄什么乱七八糟的问题