1、在dlg类中手动增加析构函数,在析构函数中释放内存。
(1)在头文件的类声明中,添加析构函数声明
class CTestDlg : public CDialog
{
public:
virtual ~CTestDlg();//析构函数声明,virtual可写可不写。
}
(2)在cpp文件中添加西沟函数定义
CTestDlg::~CTestDlg()
{
//add your code
}
2、添加消息响应函OnDestroy()函数(消息WM_DESTROY的响应函数)
窗口关闭时,程序会首先抛出消息WM_DESTROY,所以可以直接在OnDestroy()中释放内存。
另,从CDialog的源码.它也只是判断了一下句柄,然后调用DestoryWindow发送WM_DESTROY消息,所以只要你在消息响应函数OnDestroy里处理就可以了.
{
if (m_hWnd != NULL)
{
TRACE(traceAppMsg, 0, "Warning: calling DestroyWindow in CDialo