Как узнать, когда изменилось состояние закрепления панели инструментов? - PullRequest
0 голосов
/ 19 октября 2019

Кто-то задал похожий вопрос @ Обнаружение, когда состояние стыковки CControlBar изменилось , но ответ написан с точки зрения элемента управления. Я хочу знать, когда состояние стыковки меняется с CFrameWnd, потому что у меня есть окно, заполняющее клиентскую область, которое необходимо перемещать при каждом изменении состояния стыковки. Мой текущий код WM_SIZE работает, но не в том случае, если панель инструментов установлена ​​или отсоединена.

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете переопределить функцию AdjustDockingLayout для CFrameWndEx. Он будет вызываться каждый раз при изменении макета стыковки.

Информация MSDN:

Примечание. При создании окон стыковки выполняется несколько вызовов этой функции (Вы можете игнорировать их).

void CMainFrame::AdjustDockingLayout(HDWP hdwp)
{
    CMDIFrameWndEx::AdjustDockingLayout(hdwp);

    // do some calulations
}
...