我有一个大型的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。