我在原生WinAPI环境中使用C++/MFC编程。比方说,我有一个对话框窗口类(在MFC中创建并从CDialog派生)。我还在OnInitDialog()中创建了一个计时器,在窗口即将显示时使用SetTimer方法。我的问题是什么时候我需要正确释放这个计时器(或其他分配的资源)?
PS。我尝试在PostNcDestroy()中这样做,但是KillTimer失败了。但是,当我在OnClose/WM_CLOSE中执行此操作时,它可以工作,但当用户单击OK按钮关闭对话框时,它就不起作用了。是否有统一的通知来执行此操作?
发布于 2012-04-18 10:03:11
我在ON_WM_DESTROY处理程序中执行此操作。在WM_CLOSE和PostNcDestroy方法之间调用。这是你应该销毁所有窗口资源的地方。
请记住,例如,GDI资源应该尽可能快地释放,重新创建不再真正耗费时间,并且GDI资源的数量非常少。我认为默认情况下整个系统大约是10000,即使在64位Windows下也是如此。
https://stackoverflow.com/questions/10201714
复制相似问题