结束对话与销毁窗口

EndDialog vs DestroyWindow

本文关键字:窗口 对话 结束      更新时间:2023-10-16

嗨,我正在创建Windows上下文菜单的模仿。

"显示"对话框执行以下操作:

  1. 使用 CreateDialogIndirectParam 创建对话框
  2. 运行消息循环:

    while ( ContinueModal() && GetMessage(&msg, NULL, 0, 0) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
    
  3. 我在对话框中寻找新窗口的失焦事件,我将ContinueModel标志设置为 false 并调用 EndDialog/DestroyWindow

    • 调用EndDialog不会杀死我的对话框,DestroyWindow会。可以吗,谁能解释为什么?

谢谢!D.

就像文档的第一行所说的那样,EndDialog结束模态对话框。您的对话框不是模式的,因此EndDialog是错误的函数。CreateDialogIndirectParam的文档说

若要销毁对话框,请使用销毁窗口函数。