MFC非模态对话框的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 14:10:45
我为CXXView添加了一个成员变量 CTestDlg dlg;
然后在CXXView的一个菜单命令响应函数中写了:
dlg.Create(IDD_DIALOG1,this);
dlg.showdialog(sw_show);

但是第一次调用对话框时正常显示,第二次点旧出错,为什么?

不能重复创建非模式对话框

晕,,你那样定义是错的

CTestDlg *dlg; //用这样定义非模态

dlg = new CTestDlg();
dlg->Create(IDD_DIALOG1,this);
dlg->showdialog(sw_show);

………………
然后在用完了的时候
dlg->destroywindows();

delete dlg;

下次重复上面步骤用就是了,这个很基本的

按你原来那种定义方式,一旦creat,内存就被写过了,,不能重写了,

对话框创建一次就行了, 一般是在 CXXView 刚显示的时候创建, 你的程序每次显示对话框的时候都要重复创建 (Create), 这样就有错误了

楼主,你那样做就内存泄漏了。实际编写中要注意。

重复创建了。只可以创建一次。多次显示。

搂主添加的也不叫做成员变量啊,那个叫做一个对象或对象指针!!