New users of this class will have to visit Robin's article for the relevant
download material and then update the .cpp/.h files with the versions provided in this
article. Old users of the class can just replace their existing .cpp/.h files with these.
Overview of New Functionality
This is an update of the nice class provided in Robin's article and includes the following features:
- The print preview will now never show empty preview pages unless the user views 2 pages of
output when only 1 is available.
- Print preview will now respond to WM_MOUSEWHEEL messages appropriately. In "zoom out" mode, it
will scroll you through the pages of output. In "zoom in" mode, it will scroll the output page up/down.
For the mouse wheel to work correctly, you will have to override your
CMainFrame::PreTranslateMessage() function as follows:
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
if (pMsg->message == WM_MOUSEWHEEL)
CView *pView = GetActiveView() ;
if (pView != NULL)
pView->SendMessage(WM_MOUSEWHEEL, pMsg->wParam, pMsg->lParam) ;
This is required because in print preview mode, the WM_MOUSEWHEEL messages go to
the CDialogBar in the window and not directly to the view. This was the only way
I could find of easily getting these messages to the CMyPreviewView window.
Download source - 6 Kb