0

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()之后调用ShowWindowSW_SHOW会导致我在最小化时隐藏的窗口显示在任务栏上。显示窗口或最小化它(隐藏它)的正确位置在哪里。基本上发生的事情是最小化进入(在SetWindowPlacement(),窗口被隐藏,MFC后来的调用SW_SHOW使其在任务栏上最小化而不是隐藏,我的强制ShowWindow()没有做任何事情。

蒂亚!!

4

1 回答 1

0

当已经处于这些状态时,ShowWindow() 上没有 OnSize() 或 OnShowWindow() 回调。然后在m_nCmdShow=SW_HIDE通话结束时设置CAppWndInitInstance()SetWindowPlacement()

于 2020-02-20T01:28:34.137 回答