CDockablePane в качестве документа с вкладками не отправляет WM_SETFOCUS или WM_MDIACTIVATE

У меня есть класс, полученный из CDockablePane. Мне нужно что-то сделать, когда представление сфокусировано, поэтому я обрабатываю WM_SETFOCUS, и все это работает прекрасно в большинстве случаев.

Но когда панель закреплена в режиме документа с вкладками (TDI) и пользователь активирует ее, WM_SETFOCUS не вызывается.

Я использовал Spy и заметил, что сообщение WM_MDIACTIVATE отправляется в родительское окно панели.

Однако если я обработаю WM_MDIACTIVATE внутри панели или внутри мэйнфрейма, он также не будет вызван.

Любые идеи, что мне нужно обрабатывать?

1 ответ

Возможно, вам придется унаследовать класс фрейма и инициировать отправку настраиваемого сообщения вашим представлениям, когда фрейм получит WM_MDIACTIVATE.

Другие вопросы по тегам