That is because
based classes route those message to the active view and
The CFrameWnd class provides management of the active view. The following messages are routed through the active view:
- All command messages (the active view gets first access to them).
- WM_HSCROLL and WM_VSCROLL messages from sibling scroll bars (see below).
- WM_ACTIVATE (and WM_MDIACTIVATE for MDI) get turned into calls to the virtual function CView::OnActivateView.
On a side note, there are two CWnd derived classes where the scroll bar styles specified at create time are trapped and not passed to Windows.
For CMDIFrameWnd the scroll bar styles you pass in to Create or LoadFrame are used to create the MDICLIENT.
So you can't use scrollbars with
based classes. It would be only possible by implementing your own (
based) classes that must provide all the necessary MDI functionality. Due to the relationship between the MFC document and view classes you might have to create a complete new document and view implementation.
Note also that frame windows are for hosting and organising the views and usually do not require scrollbars.