使用 C++/WinAPI 在对话窗口中释放资源的相应消息是什么?



I 程序在本机 WinAPI 世界中使用 C++/MFC。比如说,我有一个对话框窗口类(在 MFC 中创建并从 CDialog 派生。我还在 OnInitDialog() 中使用 SetTimer 方法在窗口即将显示时创建了一个计时器。我的问题是何时需要正确释放此计时器(或其他分配的资源)?

附言。我尝试在PostNcDestroy()中执行此操作,但KillTimer 失败了。但是当我在 OnClose/WM_CLOSE 中执行此操作时,它可以工作,但当用户单击"确定"按钮关闭对话框时则不起作用。有统一的通知吗?

我在ON_WM_DESTROY处理程序中执行此操作。这在WM_CLOSE和PostNcDestroy方法之间调用。这是您应该销毁所有窗口资源的地方。

请记住,例如,GDI 资源应尽快释放,重新创建实际上不再花费时间,并且 GDI 资源的数量极低。我认为默认情况下,整个系统类似于 10000,即使在 64 位 Windows 下也是如此。

最新更新