1

在我的应用程序的一种情况下,我想在对话框的 OnInitDialog 中或在此函数之后立即结束应用程序。有什么办法吗?

我尝试使用 Windows 消息——在 OnInitDialog 调用 SendMessage 和在已发送消息的处理程序中调用 OnClose——但它没有达到我的预期,因为对话框仍然出现。

4

3 回答 3

1

PostQuitMessage(0)WM_INITDIALOG处理程序主体中将完成这项工作。

于 2011-10-10T21:24:24.043 回答
0

X您可以通过发送WM_SYSCOMMAND消息来模拟用户单击对话框角落中的 :

PostMessage(WM_SYSCOMMAND, SC_CLOSE, 0);
于 2012-05-01T14:59:58.863 回答
0

最简单的解决方案:

    CMyDialog::OnInitDialog()
    {
       if( "My Condition is invalid" )
       {
         EndDialog(-1);
         return FALSE;
       }
    }

您必须在 EndDialog 之后执行“返回 FALSE”,因为正如您可以在 Microsoft 文档 CDialog(classe)中阅读的那样,EndDialog 不会立即关闭对话框,而是会生成一个通知,当 Microsoft 处理该通知时必须生效以结束对话框.

于 2022-01-31T18:27:15.597 回答