EndDialog vs DestroyWindow

时间:2012-12-09 15:14:50

标签: c++ windows winapi win32gui windows-messages

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

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

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

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

    • 调用EndDialog不会终止我的对话,DestroyWindow会这样做。这没关系,有谁可以解释原因?
  5. 谢谢! d。

1 个答案:

答案 0 :(得分:7)

就像它在文档的第一行中所说的那样EndDialog ends modal dialogs。您的对话框不是模态的,因此EndDialog功能错误。 The documentation for CreateDialogIndirectParam

  

要销毁对话框,请使用DestroyWindow函数。