【问题标题】:how to disable message box "Fail to create Empty Document " Message box in MFC SDI application如何在 MFC SDI 应用程序中禁用消息框“无法创建空文档”消息框
【发布时间】:2014-01-08 06:07:12
【问题描述】:

我将VS2010 用于我的MFC SDI 应用程序。 在MainFrame 类中的OnCreate(LPCREATESTRUCT lpCreateStruct) 函数中,我打开一个对话框,并在对话框中的IDCANCLE 重播上,我想关闭我的应用程序。 我在onCreate Function 中使用以下代码。

CTermsConditionDlg objTNCDlg;
if(!objTNCDlg.DoModal() == IDCANCLE){
return -1;
}

现在我的问题是在返回语句之后应用程序正在显示消息框,如图所示。

我想禁用此消息框并关闭我的应用程序。 任何人都可以帮助我如何做到这一点。 提前谢谢你。

【问题讨论】:

    标签: c++ visual-c++ mfc sdi


    【解决方案1】:

    为什么你把这个对话框放在初始化的这么晚? 问题在于 SDI 框架依赖于一些预期始终运行的初始事物。在这种情况下,总是希望可以创建大型机。参见 CSingleDocTemplate::OpenDocumentFile 中的代码

    只需在调用 LoadFrame 或 ProcessShellCommand 之前将此代码放入 InitInistance。在这种情况下,您可以轻松终止而不会出现问题。

    另一个想法是允许创建窗口,但只是使用一个 PostMessage(WM_CLOSE);在这种情况下,初始化已完成,一切都已创建,应用程序再次终止。

    【讨论】:

    • 抱歉迟到了,作为您的第一个建议,代码已经存在于我的应用文件中。关于 PostMessage() 我不知道该把这段代码放在哪里。
    • 没有。您的代码位于 OnCreate 处理程序中。这是错误的。仅将其放在 InitInstance 处理程序中。或者使用 PostMessage 并在 OnCreate 中返回成功。
    猜你喜欢
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多