0

我要求我的 MFC SDI 应用程序启动时处于非活动状态。这是一个屏幕键盘。

在直接的 Win32 中,只需调用ShowWindow( hWnd, SW_SHOWNA );

这在 MFC 中不起作用。我尝试了各种方法:

覆盖OnActivate(), OnActivateApp(), OnCreate(),PreCreateWindow()CMainFrame

我还尝试LoadWindowPlacement()在我的应用程序类中覆盖 of。

还尝试了以下操作:

AllowSetForegroundWindow( ASFW_ANY );
::SetForegroundWindow(::GetNextWindow(::GetDesktopWindow(), GW_HWNDPREV ));

没运气。

4

1 回答 1

2

MFC 应用程序有一个特殊的参数 CWinApp::m_nCmdShow。此参数通常设置为 SW_SHOW 并显示并激活应用程序。该参数来自 STARTUPINFO。它是通过 WinMain 定义的,MFC 将它存储在 CWinApp::m_nCmdShow 中。

该成员用于框架的深度,当创建框架窗口并需要显示时。

所以在创建任何窗口之前设置它。如果您想显示您的应用程序但不想激活它,请设置为

m_nCmdShow = SW_SHOWNA;

如果你搜索这个,你会发现一堆文章。

于 2014-04-16T08:14:18.143 回答