我在原生WinAPI世界中使用C ++ / MFC进行编程。说,我有一个对话框窗口类(在MFC中创建并从CDialog派生。)我还在OnInitDialog()中创建了一个计时器,当窗口即将显示时使用SetTimer方法。我的问题是我什么时候需要正确释放这个计时器(或其他分配的资源)?
PS。我尝试在PostNcDestroy()中执行此操作,但KillTimer失败。但是当我在OnClose / WM_CLOSE中执行它时,它可以工作,但是当用户单击“确定”按钮关闭对话框时则不行。是否有统一的通知?
答案 0 :(得分:3)
我在ON_WM_DESTROY处理程序中执行此操作。在WM_CLOSE和PostNcDestroy方法之间调用。这是你应该销毁所有窗口资源的地方。
请记住,例如GDI资源应该尽可能快地释放,重新创建并不会真正花费时间,并且GDI资源的数量非常少。我认为默认情况下整个系统都是10000,即使在64位Windows下也是如此。