为什么DefdlgProc不会自动处理WM_CLOSE?

时间:2012-10-25 14:05:18

标签: winapi modal-dialog dialog

当我使用DialogBox创建对话框时,除非我在自己的DLGPROC函数中处理WM_CLOSE并调用EndDialog,否则它不会关闭。

我知道这是设计的,但我很感兴趣为什么选择WM_CLOSE而不是由DefDlgProc自动处理?这有什么好的理由吗?

1 个答案:

答案 0 :(得分:3)

问问自己:

WM_CLOSE的默认处理是什么?致电EndDialog?我认为EndDialog只会在非常罕见的情况下工作。

其他建议:

  • 验证对话框中的用户输入,如果输入超出范围或无效,则显示错误,未结束对话
  • 关闭子窗口,释放对话框子窗口正在使用的资源/内存,释放COM-Objects,基本上:首先清理然后结束对话。