c++ - 使用 C++/WinAPI 在对话窗口中释放资源的适当消息是什么

标签 c++ winapi mfc dialog

我在 native WinAPI 世界中使用 C++/MFC 进行编程。比如说,我有一个对话框窗口类(在 MFC 中创建并派生自 CDialog。)我还在 OnInitDialog() 中创建了一个计时器,当窗口即将显示时使用 SetTimer 方法。我的问题是我什么时候需要正确释放这个计时器(或其他分配的资源)?

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

最佳答案

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

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

关于c++ - 使用 C++/WinAPI 在对话窗口中释放资源的适当消息是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10201714/

相关文章:

c++ - 是>?或 <?任何 C++ 方言中的合法运算符?

c++ - 访问冲突读取位置 0xcdcdcdcd。 C++

user-interface - 从 Stingray Objective Toolkit 迁移

c++ - 获取标题栏双击

c++ - 使用 Clang/VS-2019 构建的 MFC/DLL 中缺少 ATL::CStringT 函数

c++ - 如何解决负数情况下程序以相同方式工作的问题?

c++ - CreateWindow 卡住

multithreading - 等待线程中的特定时间,使用WaitForSingleObject?

go - 如何管理使用 Win32 API(记事本、Word、Outlook、Chrome 等)打开的应用程序窗口

winapi - 如何在 Win32 中为分组框控件着色?