У меня есть приложение на C ++ / MFC, и я пытаюсь сохранить и восстановить расположение окна моего основного кадра, полученного из CFrameWnd.У меня есть GetWindowPlacement и SetWindowPlacement в соответствующих местах, и все, кажется, работает хорошо.
До тех пор, пока я не 'сохраню' окно, когда ономаксимизируется.В этом случае, когда я снова открываю приложение и использую отладчик, чтобы перешагнуть через мой SetWindowPlacement вызов, я вижу, что он размещен максимально, как я хотел.
Но тогда, если япродолжить выполнение, что-то еще «восстанавливает» мое окно до не максимизированного размера.Как мне узнать, что делает это?(Так как я нигде не вызываю ShowWindow)
РЕДАКТИРОВАТЬ: Кажется, это происходит от CFrameWnd :: InitialUpdateFrame :
int nCmdShow = -1; // default
CWinApp* pApp = AfxGetApp();
if (pApp != NULL && pApp->m_pMainWnd == this)
{
nCmdShow = pApp->m_nCmdShow; // use the parameter from WinMain
pApp->m_nCmdShow = -1; // set to default after first time
}
ActivateFrame(nCmdShow);
Если при запуске я установил для своего приложения m_nCmdShow значение SW_MAXIMIZED, оно будет показывать максимальное значение, но оно всегда будет максимальным!У меня SetWindowPlacement в моем CMainFrame :: OnActivate - это должно быть где-то еще?