c++ - 如何启动 MFC SDI 应用程序处于非事件状态?

标签 c++ mfc showwindow

我要求我的 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/

相关文章:

c++ - 将输入 CREdit 控件的文本限制为 ISO 8859-1 字符

c++ - 使用不同线程时 Win32 API 死锁

c++ - ShowWindow 替代方案

c++ - 在可变参数模板函数中同时接受 int 和 class?

c++ - 正确使用 Poco C++ JSON 解析数据

c++ - 将赋值运算符与 unique_ptr 的 vector 一起使用

c# - 将命令行参数传递给 WPF 项目中的 COM 组件

c++ - C++ 中的局部变量通常在什么时候分配内存?

javascript - 谷歌地图 div 区域中仅显示带有缩放控制的白色

windows - 在 Windows 中隐藏控件