为什么MFC对话框非模态对象不能是静态局部变量?

来源:互联网 发布:淘宝新店铺推广怎么写 编辑:程序博客网 时间:2024/05/17 03:14

vc++深入详解 226页


问题1:


mfc单文档程序名Mybole
视图类中这段代码


void CMyboleView::OnDialog(){    // TODO:  在此添加命令处理程序代码     static CTestDlg dlg;    dlg.Create(IDD_DIALOG1, this);    dlg.ShowWindow(SW_SHOW);}

关闭对话框再打开会遇到debug assertion failed错误


不能Create多次


目前解决方法方法只能用指针要new出来


 


还有疑问


问题2:


我把它放到视类的头文件里也是报错,这是为什么啊




public:afx_msg void OnDialog();CTestDlg dlg;


解决代码

static CTestDlg dlg;if(IsWindow(dlg.m_hWnd))dlg.DestroyWindow();

原来使用静态变量出错,是因为不能Create多次


讨论地址:http://bbs.csdn.net/topics/390884128

public:afx_msg void OnDialog();CTestDlg dlg;


0 0
原创粉丝点击