void CMainFrame::OnStatic()
{
Notify *notice=new Notify;
(notice->GetDlgItem(IDC_MyStatic))->SetWindowText("Message"); //此处报错
notice->DoModal();
}注:
我建的是一个单文档应用程序,在菜单栏点击一个按钮,调用OnStatic()函数
Notify为一个对话框类,对话框中放了一个CStatic控件用来显示信息,其ID为IDC_MyStatic
报错如下:
File: winocc.cpp
Line:76
For information on how your program can cause an assertion
failure,see the Visual C++ documentation on asserts.
请问是什么原因???
你这刚创建 还没显示对话框,这个控件当然不能用
notice->DoModal();
(notice->GetDlgItem(IDC_MyStatic))->SetWindowText("Message"); //此处报错第2句和第3句换位置
对话框上显示的信息就不是想要显示的”Message“了,并且调用还会出错!大哥可以试一下!
把你的GetDlgItem(IDC_MyStatic)->SetWindowText("Message"); 这个放到Notify类的OnInitDialog()函数中去。
就作一个构造函数,
把上面的控作初始化完,再显示呀。
CNotify::CNotify(CString msg, //要传的参数
CWnd* pParent /*=NULL*/)
: CDialog(CNotify::IDD, pParent)
{
//{{AFX_DATA_INIT(CNotify)
m_msg = msg;
//}}AFX_DATA_INIT
}
//-----------------------------
CNotify *notify = new CNotify("bbbbbbb");
notify->DoModal();