文件A.cpp
CLASSA *PA; //全局的指针。
PA = NEW CLASSA ;
PA->CREATE(IDD_DIA,this);
PA->showwindow(sw_show);
....文件B.cpp
在对应的IDD_DIA 对话框的类中判断:当按下鼠标左键时退出。
ONLBUTTON()
{ PA-》DESTROYWINDOW();}
destroywindow()
{
。 //释放其他的东西
DELETE PA; //可以在这里杉吗??还是要在文件A.cpp中删???
PA = NULL;
}不定时的会报执行了非法操作,窗口无法删除,有时又正常不会报错怎么绘事?
CLASSA *PA; //全局的指针。
PA = NEW CLASSA ;
PA->CREATE(IDD_DIA,this);
PA->showwindow(sw_show);
....文件B.cpp
在对应的IDD_DIA 对话框的类中判断:当按下鼠标左键时退出。
ONLBUTTON()
{ PA-》DESTROYWINDOW();}
destroywindow()
{
。 //释放其他的东西
DELETE PA; //可以在这里杉吗??还是要在文件A.cpp中删???
PA = NULL;
}不定时的会报执行了非法操作,窗口无法删除,有时又正常不会报错怎么绘事?
你这样调用不行的,要把A.h包含入文件B.h
重载B中的OnDestroy(),在其中写入
{
。 //释放其他的东西
DELETE PA;
PA = NULL;
}
之前你的想法也可以,你先试试看,如果不行就用我说的方法。另外,如果你有按钮关闭程序,直接调用
DestroyWindow() ,它会接着调用OnDestroy
DestoryWindow会产生WM_NCDESTROY消息,这时对话框已经销毁。
最后,PostNcDestroy() 重载函数,作为处理OnNcDestroy()函数的最后动作被CWnd调用,所以,在你的对话框类里面重载PostNcDestroy(),在里面delete this.