嗨,我创建一个Windows上下文菜单的模仿。

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

  • 使用CreateDialogIndirectParam创建一个对话框
  • 运行一个消息循环:
    while ( ContinueModal() && GetMessage(&msg, NULL, 0, 0) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
    
  • 我在对话框中寻找新窗口的焦点丢失事件,在那里将ContinueModel标志设置为false并调用EndDialog / DestroyWindow
  • 调用EndDialog不会杀死我的对话框,但DestroyWindow却可以。可以,有人可以解释原因吗?

  • 谢谢!
    D.

    最佳答案

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

    08-17 03:24