/*[]=====================================================================[]*/ /*[] LEADTOOLS for Windows(Class Library) - Version 11 []*/ /*[] []*/ /*[] []*/ /*[] Copyright (c) 1991-2000 LEAD Technologies, Inc. []*/ /*[] All Rights Reserved. []*/ /*[]=====================================================================[]*/ /*---(Scrlzoom)---------------------------------------------------------------- We have made the assumption that the user has the knowledge of Object Oriented programing of C under Windows. This is a menu driven demo program with the capability to display, zoom in, and zoom out any image with vertical and horizontal scroll.This program emphasizes the power of the LEADTOOL Function LPaint::PaintDC(). Usage: SCRLZOOM --------------------------------------------------------------------------*/ // ScZmView.cpp : implementation of the CScZmView class // #include "stdafx.h" #include "ScZm.h" #include "ScZmDoc.h" #include "ScZmView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CScZmView IMPLEMENT_DYNCREATE(CScZmView, CView) BEGIN_MESSAGE_MAP(CScZmView, CView) //{{AFX_MSG_MAP(CScZmView) ON_WM_CREATE() ON_COMMAND(ID_DISPLAY_ZOOM_IN_2X, OnDisplayZoomIn2x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_3X, OnDisplayZoomIn3x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_4X, OnDisplayZoomIn4x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_5X, OnDisplayZoomIn5x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_6X, OnDisplayZoomIn6x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_7X, OnDisplayZoomIn7x) ON_COMMAND(ID_DISPLAY_ZOOM_IN_8X, OnDisplayZoomIn8x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_12X, OnDisplayZoomOut12x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_13X, OnDisplayZoomOut13x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_14X, OnDisplayZoomOut14x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_15X, OnDisplayZoomOut15x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_16X, OnDisplayZoomOut16x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_17X, OnDisplayZoomOut17x) ON_COMMAND(ID_DISPLAY_ZOOM_OUT_18X, OnDisplayZoomOut18x) ON_COMMAND(ID_DISPLAY_NORMAL, OnDisplayNormal) //}}AFX_MSG_MAP ON_MESSAGE(WM_HANDLEPALETTE,OnHandlePalette) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CScZmView construction/destruction CScZmView::CScZmView() { } CScZmView::~CScZmView() { } BOOL CScZmView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CScZmView drawing void CScZmView::OnDraw(CDC* pDC) { CScZmDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // CScZmView diagnostics #ifdef _DEBUG void CScZmView::AssertValid() const { CView::AssertValid(); } void CScZmView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CScZmDoc* CScZmView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CScZmDoc))); return (CScZmDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CScZmView message handlers int CScZmView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; m_LeadBWnd.SetWndHandle(GetSafeHwnd()); return 0; } LRESULT CScZmView::OnHandlePalette(WPARAM wParam,LPARAM lParam) { if(lParam==TRUE) { m_LeadBWnd.HandlePalette(WM_PALETTECHANGED,wParam,0); m_LeadBWnd.Repaint(); } else { if(m_LeadBWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LeadBWnd.Repaint(); } return TRUE; } void CScZmView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { if(bActivate==TRUE && pActivateView==this) { m_LeadBWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0); ::SetFocus(m_LeadBWnd.GetBitmapWnd()); } CView::OnActivateView(bActivate, pActivateView, pDeactiveView); } // Zoom In 2x void CScZmView::OnDisplayZoomIn2x() { // Set the value to the bitmap window m_LeadBWnd.SetZoomPercent (200); } // Zoom In 3x void CScZmView::OnDisplayZoomIn3x() { m_LeadBWnd.SetZoomPercent (300); } // Zoom In 4x void CScZmView::OnDisplayZoomIn4x() { m_LeadBWnd.SetZoomPercent (400); } // Zoom In 5x void CScZmView::OnDisplayZoomIn5x() { m_LeadBWnd.SetZoomPercent (500); } // Zoom In 6x void CScZmView::OnDisplayZoomIn6x() { m_LeadBWnd.SetZoomPercent (600); } // Zoom In 7x void CScZmView::OnDisplayZoomIn7x() { m_LeadBWnd.SetZoomPercent (700); } // Zoom In 8x void CScZmView::OnDisplayZoomIn8x() { m_LeadBWnd.SetZoomPercent (800); } // Zoom Out 1/2x void CScZmView::OnDisplayZoomOut12x() { m_LeadBWnd.SetZoomPercent (50); } // Zoom Out 1/3x void CScZmView::OnDisplayZoomOut13x() { m_LeadBWnd.SetZoomPercent (33); } // Zoom Out 1/4x void CScZmView::OnDisplayZoomOut14x() { m_LeadBWnd.SetZoomPercent (25); } // Zoom Out 1/5x void CScZmView::OnDisplayZoomOut15x() { m_LeadBWnd.SetZoomPercent (20); } // Zoom Out 1/6x void CScZmView::OnDisplayZoomOut16x() { m_LeadBWnd.SetZoomPercent (17); } // Zoom Out 1/7x void CScZmView::OnDisplayZoomOut17x() { m_LeadBWnd.SetZoomPercent (14); } // Zoom Out 1/8x void CScZmView::OnDisplayZoomOut18x() { m_LeadBWnd.SetZoomPercent (12); } // View Normal void CScZmView::OnDisplayNormal() { if (!m_LeadBWnd.IsAllocated()) return; m_LeadBWnd.SetZoomPercent (100); }