dcsimg

Print Preview Enhancements

WEBINAR:
On-Demand

Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


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.

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.

Downloads

Download source - 6 Kb


About the Author

Roger Allen

Its me!

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date