www.gusucode.com > VC++环境下从串口读取数据并实时绘制曲线图 > VC++环境下从串口读取数据并实时绘制曲线图/读取串口数据并画实时曲线的VC++程序源码/RTSlider.cpp
// RTSlider.cpp : implementation file // #include "stdafx.h" #include "RTDemo.h" #include "RTSlider.h" #include "RTDemoDoc.h" #include "RTDemoView.h" #include "RTForm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRTSlider CRTSlider::CRTSlider() { m_sType = TICK; m_nCurPos = 0; } CRTSlider::~CRTSlider() { } BEGIN_MESSAGE_MAP(CRTSlider, CSliderCtrl) //{{AFX_MSG_MAP(CRTSlider) ON_WM_LBUTTONUP() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRTSlider message handlers void CRTSlider::OnLButtonUp(UINT nFlags, CPoint point) { m_nCurPos = GetPos(); if (m_sType == TICK) { CRTDemoView* pWnd = (CRTDemoView*)GetParent(); ASSERT_VALID(pWnd); if (pWnd->m_Graph.m_nTick == m_nCurPos) { CSliderCtrl::OnLButtonUp(nFlags, point); return; } else { pWnd->m_Graph.m_nTick = m_nCurPos; pWnd->RefreshGraph(); } } else if (m_sType == PAGE) { CRTForm* pForm = (CRTForm*)GetParent(); ASSERT_VALID(pForm); CRTDemoView* pWnd = (CRTDemoView*)pForm->GetRTDemoView(); if (pWnd->m_Graph.m_nPage == m_nCurPos) { CSliderCtrl::OnLButtonUp(nFlags, point); return; } else if (m_nCurPos == GetRangeMax()) pWnd->m_Graph.m_bAutoScrollX = TRUE; else pWnd->m_Graph.m_bAutoScrollX = FALSE; pWnd->m_Graph.m_nPage = m_nCurPos; pWnd->m_Graph.Reset(); pWnd->RefreshGraph(); } CSliderCtrl::OnLButtonUp(nFlags, point); }