gpt4 book ai didi

c++ - CWinApp CFrameWindow 未显示

转载 作者:行者123 更新时间:2023-11-28 01:50:50 26 4
gpt4 key购买 nike

我正在尝试使用 CFrameWindow 创建窗口,我使用了“使用 Visual C++ 模拟应用图论”中的代码,但它没有入口点,所以它无论如何都不起作用。所以我尽可能地简化了它,现在当应用程序在 Release模式下启动时窗口不会出现并且在 Debug模式下它会抛出断言失败的错误。我使用 MSVS Visual C++ -> 常规 -> 空项目,并将“使用 MFC”设置为在共享 DLL 中使用 MFC。

代码如下:

#include <afxwin.h>

class MyWnd : public CFrameWnd
{
public:
MyWnd() { Create(0, "MyWnd"); }
~MyWnd() { }
};

class MyApp : public CWinApp
{
public:
virtual BOOL InitInstance()
{
m_pMainWnd = new MyWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
};

int CALLBACK WinMain (_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow)
{
MyApp myApp;
myApp.InitInstance();
myApp.Run();
}

编辑:更新为调用 MyApp.Run(),但它仍然没有显示任何内容,还检查了子系统,没有被选中,尝试了 Console、Windows、Native,仅使用 Windows 编译但没有帮助。

最佳答案

在 InitInstance 之后,您应该调用 CWinApp::Run 以启动消息泵送。此外,Run() 会阻塞 WinMain 函数,直到它退出。如果没有 Run(),您的 WinMain 会在您看到窗口之前简单地终止。

关于c++ - CWinApp CFrameWindow 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088675/

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