Обратите внимание, что полоса прокрутки для CMDIFrameWndEx
не имеет смысла.
CMDIFrameWndEx
имеет дочернее окно типа CMDIClientAreaWnd
, это окно покрывает всю клиентскую область, оставшуюся после создания панелей инструментов и ленты.
Поэтому, когда вы создаете основной фрейм со стилями WS_VSCROLL | WS_HSCROLL
, эти стили удаляются из окна основного фрейма и передаются во внутренний класс (окно клиента MDI).
Таким образом, окно внешнего кадра никогда не получит сообщения прокрутки.
У вас есть исходный код MFC, просто посмотрите на исходный код функции CMDIFrameWnd::CreateClient
! Вы найдете там поведение.
После этого CMDIClientAreaWnd
получает управление через подкласс дескриптора m_hWndMDIClient
в классе CMDIClientAreaWnd
.
Этот класс отвечает за стиль представления MDI-Tab.
Поэтому, если вы хотите, чтобы сообщения на полосе прокрутки вы использовали классические подклассы для внутреннего окна клиента MDI.
Spy ++ может помочь вам понять структуру окна.