在CWinApp::InitInstance()我有:
if (!ProcessShellCommand(cmdInfo))
return FALSE;
m_pMainWnd->ShowWindow(m_MinimizeOnStartup ? SW_SHOWMINIMIZED : SW_SHOWNORMAL);
m_pMainWnd->UpdateWindow();
但是我的 ShowWindow 调用不会导致OnSize()orOnShowWindow()回调?在ProcessShellCommand()这些过程中被调用了几次,因为第OnShowWindow()一次通过SetWindowPlacement(). 一切正常,恢复到最后一个状态,但ProcessShellCommand()之后调用ShowWindow它SW_SHOW会导致我在最小化时隐藏的窗口显示在任务栏上。显示窗口或最小化它(隐藏它)的正确位置在哪里。基本上发生的事情是最小化进入(在SetWindowPlacement(),窗口被隐藏,MFC后来的调用SW_SHOW使其在任务栏上最小化而不是隐藏,我的强制ShowWindow()没有做任何事情。
蒂亚!!