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