gpt4 book ai didi

c++ - MFC 应用程序在启动时关闭

转载 作者:行者123 更新时间:2023-11-28 00:27:22 30 4
gpt4 key购买 nike

尝试运行一个简单的 MFC 应用程序但由于程序终止而关闭,假设我需要在单独的线程中运行对话框但不知道如何运行。

这是目前的代码:

CWinApp theApp;

using namespace std;

int main(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

HMODULE hModule = ::GetModuleHandle(NULL);

theApp.InitApplication();
theApp.InitInstance();
theApp.Run();

AfxWinTerm();

if (hModule != NULL)
{
// initialize MFC and print and error on failure
if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;

}
else
{
MyDialog *mdlg = new MyDialog();
mdlg->Create( IDD_MDLG, theApp.m_pMainWnd);
mdlg->ShowWindow( true );

}
}
else
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: GetModuleHandle failed\n"));
nRetCode = 1;
}

return nRetCode;
}

必须有一些简单的方法可以防止程序终止,只是不确定如何做?

最佳答案

而不是调用:

mdlg->ShowWindow( true );

你应该这样做:

mdlg->DoModal();

此外,我认为您不需要Create。如果你想继续使用无模式对话框,那么你应该在从 main 返回之前创建消息循环——就像这里的 http://en.wikipedia.org/wiki/Message_loop_in_Microsoft_Windows

关于c++ - MFC 应用程序在启动时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24324273/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com