MF C: Показать или свернуть (скрыть) окно при запуске - PullRequest
0 голосов
/ 19 февраля 2020

В CWinApp::InitInstance() У меня есть:

if (!ProcessShellCommand(cmdInfo))
  return FALSE;
m_pMainWnd->ShowWindow(m_MinimizeOnStartup ? SW_SHOWMINIMIZED : SW_SHOWNORMAL);
m_pMainWnd->UpdateWindow();

Но мой вызов ShowWindow не приводит к обратному вызову OnSize() или OnShowWindow()? Во время ProcessShellCommand() они вызываются несколько раз, так как первый OnShowWindow() восстанавливает размер окна при последнем отключении через SetWindowPlacement(). Это все работает хорошо, восстанавливая до последнего состояния, но ProcessShellCommand() впоследствии вызывает ShowWindow с SW_SHOW, что приводит к тому, что мое скрытое при свернутом окне отображается на панели задач. Где подходящее место, чтобы показать окно или свернуть его (чтобы скрыть). По сути, происходит сведение к минимуму (на SetWindowPlacement() окно скрыто, MFC позже вызывает SW_SHOW, что делает его минимизированным на панели задач вместо скрытого, мой принудительный ShowWindow() ничего не делает.

TIA !!

1 Ответ

0 голосов
/ 20 февраля 2020

Нет никакого OnSize (), ни OnShowWindow () обратного вызова в ShowWindow (), когда уже в этих состояниях. Установите m_nCmdShow=SW_HIDE в CAppWnd, затем в конце InitInstance() вызовите SetWindowPlacement()

...