1.在SDI工程里添加了一个对话框资源IDD_DIALOG1;
2.给该对话框增加新的类CMyDlg,并在视图类里用classwizard增加成员变量CMyDlg dlg;
3.在视类的某个菜单相应函数里用create的方法来显示这个对话框IDD_DIALOG1,并在该函数末用dlg.DstroyWindow()销毁该对话框;
调试成功后点击菜单项运行成功,不关闭程序再重复点击一次该菜单项就出现错误指向:
if (m_pfnSuper != NULL)
return ::CallWindowProc(m_pfnSuper, m_hWnd, nMsg, wParam, lParam);上网查了一下,说是create后没有销毁掉对话框,但是我明明已经用dlg.DstroyWindow()销毁了,如果我把CMyDlg dlg放在该菜单相应函数里而不是用classwizard增加,则运行时不会出现任何错误,请教高手什么原因,如何解决??
谢谢~
2.给该对话框增加新的类CMyDlg,并在视图类里用classwizard增加成员变量CMyDlg dlg;
3.在视类的某个菜单相应函数里用create的方法来显示这个对话框IDD_DIALOG1,并在该函数末用dlg.DstroyWindow()销毁该对话框;
调试成功后点击菜单项运行成功,不关闭程序再重复点击一次该菜单项就出现错误指向:
if (m_pfnSuper != NULL)
return ::CallWindowProc(m_pfnSuper, m_hWnd, nMsg, wParam, lParam);上网查了一下,说是create后没有销毁掉对话框,但是我明明已经用dlg.DstroyWindow()销毁了,如果我把CMyDlg dlg放在该菜单相应函数里而不是用classwizard增加,则运行时不会出现任何错误,请教高手什么原因,如何解决??
谢谢~
解决方案 »
- live555 客户端 ,如何判断服务器端有没有发送数据到客户端
- 求助各位大神,我如何把一个文件夹下的文件移动到另一个文件夹下啊???
- 请教个问题
- 可以在dll里面放SDI框架并调用吗?
- 有关 MDI+拆分窗口+多视 的技术,不知能否实现?
- 我在listctrl中显示数据,在对话框中输入数据,我想每输入一条,就在listctrl中把刚才输入的那一条设为选中状态,用SetItemState为什么不
- 送分
- 如何利用线程打开外部程序?
- GetOverlappedResult 返回成功,但传输字节数总为0
- truncate 这个函数在哪个头文件下,或者有没有替代的函数
- 关于多线程的问题!
- 多网卡如何取得正在使用的本机IP?
dlg.ShowWindow(SW_SHOW);
...........
dlg.DestroyWindow();
-------
试试把dlg.m_hwnd设为NULL
用create创建非模态,并不阻碍程序运行
那么
dlg.create(IDD_DIALOG!); //dlg是视图类中全局变量 CMyDlg dlg;
dlg.ShowWindow(SW_SHOW);
dlg.DestroyWindow();
岂不是刚创建就销毁??
dlg.create(IDD_DIALOG!); //dlg是视图类中全局变量 CMyDlg dlg;
dlg.ShowWindow(SW_SHOW);
...........
dlg.DestroyWindow();中间的省略号是指代码部分
改成局部的是没问题的,我已经试过了
if(dlg.GetSafeHandle()!=NULL)
dlg.DestroyWindow();
else
{
dlg.create(IDD_DIALOG1);
dlg.showwindow(sw_show);
}
试试吧。
即使你点X之后,它也只是隐藏了,并没有Destory。