Динамическое изменение главного меню приложения
Окна Document Window MDI-приложения могут содержать документы различных типов либо документы одного и того же типа, но находящиеся в различном состоянии. Поэтому в зависимости от того, какое окно Document Window активно, внешний вид главного меню приложения (и органов управления окна Toolbar, если такое предусмотрено в приложении) должно изменяться. О том, как динамически изменять меню, мы рассказывали в первой главе 13 тома "Библиотеки системного программиста". Теперь нам надо научиться выполнять такие изменения при активизации окон Document Window.
Функция окна Document Window может обнаружить, когда окно становится активным (получает фокус ввода) или неактивным (теряет фокус ввода), отслеживая сообщение WM_MDIACTIVATE. Параметр wParam этого сообщения принимает значение TRUE, если окно Document Window становится активным, или FALSE, если оно становится неактивным.
Если окно становится активным, младшее слово параметра lParam сообщения WM_MDIACTIVATE содержит идентификатор активного окна Document Window. Если же окно теряет фокус ввода и становится неактивным, старшее слово параметра lParam сообщения WM_MDIACTIVATE содержит идентификатор окна Document Window, которое становится неактивным.
Предусмотрев в функции окна Document Window обработчик сообщения WM_MDIACTIVATE, приложение может изменять главное меню приложения и выполнять другие действия в зависимости от того, какое окно Document Window стало активным.