// ZoomDlg.cpp : implementation file // #include "stdafx.h" #include "Prnt.h" #include "ZoomDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CZoomDlg dialog CZoomDlg::CZoomDlg(CWnd* pParent /*=NULL*/) : CDialog(CZoomDlg::IDD, pParent) { //{{AFX_DATA_INIT(CZoomDlg) m_nZoom = 100; //}}AFX_DATA_INIT } void CZoomDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CZoomDlg) DDX_Control(pDX, IDC_SCROLLBAR, m_ScrollBar); DDX_Text(pDX, IDC_EDIT, m_nZoom); DDV_MinMaxInt(pDX, m_nZoom, 1, 800); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CZoomDlg, CDialog) //{{AFX_MSG_MAP(CZoomDlg) ON_WM_HSCROLL() ON_EN_CHANGE(IDC_EDIT, OnChangeEdit) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CZoomDlg message handlers BOOL CZoomDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ScrollBar.SetScrollRange(1,800,TRUE); m_ScrollBar.SetScrollPos(m_nZoom); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CZoomDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { switch (nSBCode) { case SB_LEFT: m_nZoom--; break; case SB_RIGHT: m_nZoom++; break; case SB_THUMBPOSITION: case SB_THUMBTRACK: m_nZoom = (int) nPos; break; case SB_LINELEFT: m_nZoom = max (m_nZoom - 1, 1 ); break; case SB_LINERIGHT: m_nZoom = min (m_nZoom + 1, 800 ); break; case SB_PAGELEFT: m_nZoom = max (m_nZoom - 5, 1 ); break; case SB_PAGERIGHT: m_nZoom = min (m_nZoom + 5, 800 ); break; } UpdateData(FALSE); m_ScrollBar.SetScrollPos(m_nZoom); CDialog::OnHScroll(nSBCode, nPos, pScrollBar); } void CZoomDlg::OnChangeEdit() { // TODO: Add your control notification handler code here UpdateData(TRUE); m_ScrollBar.SetScrollPos(m_nZoom); }