Print Preview Enhancements
Posted
by Roger Allen
on September 24th, 2000
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.
Implementation Details
For the mouse wheel to work correctly, you will have to override your CMainFrame::PreTranslateMessage() function as follows:
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_MOUSEWHEEL)
{
CView *pView = GetActiveView() ;
if (pView != NULL)
pView->SendMessage(WM_MOUSEWHEEL, pMsg->wParam, pMsg->lParam) ;
}
// call the base class here
}
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.

Comments
There are no comments yet. Be the first to comment!