RTSlider.cpp
上传用户:mgf822
上传日期:2013-10-03
资源大小:133k
文件大小:2k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // RTSlider.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "RTDemo.h"
  5. #include "RTSlider.h"
  6. #include "RTDemoDoc.h"
  7. #include "RTDemoView.h"
  8. #include "RTForm.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CRTSlider
  16. CRTSlider::CRTSlider()
  17. {
  18. m_sType    = TICK;
  19. m_nCurPos  = 0;
  20. }
  21. CRTSlider::~CRTSlider()
  22. {
  23. }
  24. BEGIN_MESSAGE_MAP(CRTSlider, CSliderCtrl)
  25. //{{AFX_MSG_MAP(CRTSlider)
  26. ON_WM_LBUTTONUP()
  27. //}}AFX_MSG_MAP
  28. END_MESSAGE_MAP()
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CRTSlider message handlers
  31. void CRTSlider::OnLButtonUp(UINT nFlags, CPoint point) 
  32. {
  33. m_nCurPos = GetPos();
  34. if (m_sType == TICK)
  35. {
  36. CRTDemoView* pWnd = (CRTDemoView*)GetParent();
  37. ASSERT_VALID(pWnd);
  38. if (pWnd->m_Graph.m_nTick == m_nCurPos)
  39. {
  40. CSliderCtrl::OnLButtonUp(nFlags, point);
  41. return;
  42. }
  43. else
  44. {
  45. pWnd->m_Graph.m_nTick = m_nCurPos;
  46. pWnd->RefreshGraph();
  47. }
  48. }
  49. else if (m_sType == PAGE)
  50. {
  51. CRTForm* pForm = (CRTForm*)GetParent();
  52. ASSERT_VALID(pForm);
  53. CRTDemoView* pWnd = (CRTDemoView*)pForm->GetRTDemoView();
  54. if (pWnd->m_Graph.m_nPage == m_nCurPos)
  55. {
  56. CSliderCtrl::OnLButtonUp(nFlags, point);
  57. return;
  58. }
  59. else if (m_nCurPos == GetRangeMax())
  60. pWnd->m_Graph.m_bAutoScrollX = TRUE;
  61. else
  62. pWnd->m_Graph.m_bAutoScrollX = FALSE;
  63. pWnd->m_Graph.m_nPage = m_nCurPos;
  64. pWnd->m_Graph.Reset();
  65. pWnd->RefreshGraph();
  66. }
  67. CSliderCtrl::OnLButtonUp(nFlags, point);
  68. }