0

我有一个大型 C++/MFC 应用程序,它可以以两种模式启动:1)常规 GUI 模式和 2)使用命令行参数启动时的特殊模式,在这种情况下,程序的 GUI 部分没有显示,而是我添加了一个图标到通知(系统)托盘。

为了确保不显示模式 2 的主窗口,我按如下方式处理 WM_WINDOWPOSCHANGING:

void OnWindowPosChanging(WINDOWPOS* lpwndpos)
{
    CDialog::OnWindowPosChanging(lpwndpos);

    // TODO: Add your message handler code here

    //Prevent main window from showing
    lpwndpos->flags &= ~SWP_SHOWWINDOW;
}

如果在处理此消息后逻辑确定命令行中有错误并希望显示主窗口,则会出现此问题。但是在处理 WM_WINDOWPOSCHANGING 消息后,我似乎无法显示主窗口,就像我在上面显示的那样。

PS。该项目是为 Visual Studio 2008 编写的 C++ MFC。

4

0 回答 0