我要求我的 MFC SDI 应用程序以非事件状态启动。这是一个屏幕键盘。
在直接的 Win32 中,只需调用 ShowWindow( hWnd, SW_SHOWNA );
这在 MFC 中不起作用。我尝试过各种方法:
覆盖 OnActivate()
、OnActivateApp()
、OnCreate()
、PreCreateWindow()
>CMainFrame
.
我还尝试在我的应用类中覆盖 LoadWindowPlacement()
。
还尝试过类似的东西:
AllowSetForegroundWindow( ASFW_ANY );
::SetForegroundWindow(::GetNextWindow(::GetDesktopWindow(), GW_HWNDPREV ));
运气不好。
最佳答案
MFC 应用程序有一个特殊的参数 CWinApp::m_nCmdShow。 此参数通常设置为 SW_SHOW 并显示和激活应用程序。该参数来自 STARTUPINFO。它通过 WinMain 定义,MFC 将其存储在 CWinApp::m_nCmdShow 中。
这个成员在框架的深度使用,当框架窗口被创建并需要显示时。
因此在创建任何窗口之前设置它。如果您想显示您的应用程序但不想激活它,请设置为
m_nCmdShow = SW_SHOWNA;
如果你搜索这个,你会找到一堆文章。
关于c++ - 如何启动 MFC SDI 应用程序处于非事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092406/