3

当我使用创建对话框时DialogBox,除非我在自己的DLGPROC函数中处理 WM_CLOSE 并调用EndDialog.

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

4

1 回答 1

3

问问自己这个:

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

其他建议:

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