最近在弄一个DLL,涉及到一个非模态对话框
对话框的建立无区模态非模态,区别在于创建的方式。模态对话框是使用DoModal的方式创建,而非模态对话框的方式是:
CDialog *pDlg = new CDialog(父窗口指针);
pDlg->Create(ID, 父窗口指针);
pDlg->ShowWindow(SW_SHOW);
这样非模态对话框便显示出来了
然后……
关闭对话框后发现一大堆内存泄露……
资源释放,解决方法:
在对话框类中重写PostNcDestroy
在PostNcDestroy中添加delete this,释放自身资源,当然其中还可以添加一些你想要释放的资源
OK,搞掂了,在外面给对话框发送一个WM_DESTROY消息过来,资源释放问题解决了。