2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 窗口关闭后释放内存的方法

窗口关闭后释放内存的方法

时间:2022-02-15 14:19:57

相关推荐

窗口关闭后释放内存的方法

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里处理就可以了.

CDialog::~CDialog()

{

if (m_hWnd != NULL)

{

TRACE(traceAppMsg, 0, "Warning: calling DestroyWindow in CDialog::~CDialog --\n");

TRACE(traceAppMsg, 0, "\tOnDestroy or PostNcDestroy in derived class will not be called.\n");

DestroyWindow();

}

}

补充:

虚析构函数:

1、程序会先调用派生类的析构函数,再调用基类的析构函数。

2、如果基类的析构函数声明为虚函数,由该基类所派生的所有派生类的析构函数都自动成为虚函数(即使派生类的析构函数与基类的析构函数名字不相同)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。