非模态对话框DLL

最近在弄一个DLL,涉及到一个非模态对话框

对话框的建立无区模态非模态,区别在于创建的方式。模态对话框是使用DoModal的方式创建,而非模态对话框的方式是:

CDialog *pDlg = new CDialog(父窗口指针);

pDlg->Create(ID, 父窗口指针);

pDlg->ShowWindow(SW_SHOW);

这样非模态对话框便显示出来了

然后……

关闭对话框后发现一大堆内存泄露……

资源释放,解决方法:

在对话框类中重写PostNcDestroy

PostNcDestroy中添加delete this,释放自身资源,当然其中还可以添加一些你想要释放的资源

OK,搞掂了,在外面给对话框发送一个WM_DESTROY消息过来,资源释放问题解决了。


你可能感兴趣的:(C++)