⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btmview.cpp

📁 一个很好的虚拟示波器!可一直接运行!他通过串口采集信号与系统单片机上的数据
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// BtmView.cpp : implementation file
//

#include "stdafx.h"
#include "Vsbq.h"
#include "BtmView.h"
#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CVsbqApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CBtmView

IMPLEMENT_DYNCREATE(CBtmView, CFormView)

CBtmView::CBtmView()
	: CFormView(CBtmView::IDD)
{
	//{{AFX_DATA_INIT(CBtmView)
	m_bright = FALSE;
	m_bleft = FALSE;
	m_NumLeftSlider = 0;
	m_NumRightSlider = 0;
	m_rscSlider2Val = 0;
	m_NumTimerSlier = 0;
	m_NumSampleSlider = 0;
	m_NumSampleRigor = 0;
	m_nVolCH2 = 0;
	//}}AFX_DATA_INIT
	m_bset = TRUE;
	pBrush = new CBrush;
	pOldBrush = new CBrush;
	pBrush->CreateSolidBrush(RGB(212,208,200));
	m_brBkgnd.CreateSolidBrush(RGB(212,208,200));
	m_pen.CreatePen(PS_SOLID,0,RGB(212,208,200));
	//165,162,132
}

CBtmView::~CBtmView()
{
}

void CBtmView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBtmView)
	DDX_Control(pDX, IDC_VOLCH2_SLIDER, m_VolCH2Slider);
	DDX_Control(pDX, IDC_SAMPLE_RIGOR, m_SampleRigor);
	DDX_Control(pDX, IDC_ADDWAVE_BTN, m_AddWaveBtn);
	DDX_Control(pDX, IDC_EXIT_BTN, m_ExitBtn);
	DDX_Control(pDX, IDC_START_BTN, m_StartBtn);
	DDX_Control(pDX, IDC_STARTUP_BTN, m_StartupBtn);
	DDX_Control(pDX, IDC_SAMPLE_SLIDER, m_SampleSlider);
	DDX_Control(pDX, IDC_TIMER_SLIDER, m_TimerSlider);
	DDX_Control(pDX, IDC_SLIDER2, m_rscSlider2);
	DDX_Control(pDX, IDC_RIGHTSLIDER, m_RightSelider);
	DDX_Control(pDX, IDC_LEFTSLIDER, m_LeftSlider);
	DDX_Check(pDX, IDC_CHECK_RGT, m_bright);
	DDX_Check(pDX, IDC_CHECK_LFT, m_bleft);
	DDX_Slider(pDX, IDC_LEFTSLIDER, m_NumLeftSlider);
	DDX_Slider(pDX, IDC_RIGHTSLIDER, m_NumRightSlider);
	DDX_Slider(pDX, IDC_SLIDER2, m_rscSlider2Val);
	DDX_Slider(pDX, IDC_TIMER_SLIDER, m_NumTimerSlier);
	DDX_Slider(pDX, IDC_SAMPLE_SLIDER, m_NumSampleSlider);
	DDX_Slider(pDX, IDC_SAMPLE_RIGOR, m_NumSampleRigor);
	DDX_Slider(pDX, IDC_VOLCH2_SLIDER, m_nVolCH2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBtmView, CFormView)
	//{{AFX_MSG_MAP(CBtmView)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_CHECK_LFT, OnCheckLft)
	ON_BN_CLICKED(IDC_CHECK_RGT, OnCheckRgt)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_LEFTSLIDER, OnReleasedcaptureLeftslider)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_RIGHTSLIDER, OnReleasedcaptureRightslider)
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_STARTUP_BTN, OnStartupBtn)
	ON_BN_CLICKED(IDC_START_BTN, OnStartBtn)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_EXIT_BTN, OnExitBtn)
	ON_WM_CREATE()
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SAMPLE_RIGOR, OnReleasedcaptureSampleRigor)
	ON_MESSAGE(UM_MYKILLTIMER, OnMyKillTimer)            /////////////////////
	ON_MESSAGE(UM_MYSETTIMER, OnMySetTimer)              ///////////////////////
	ON_MESSAGE(UM_SETBUTTON, OnMySetButton)              /////////////////////
	ON_WM_CANCELMODE()
	ON_WM_CTLCOLOR()
	ON_WM_CAPTURECHANGED()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBtmView diagnostics

#ifdef _DEBUG
void CBtmView::AssertValid() const
{
	CFormView::AssertValid();
}

void CBtmView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CBtmView message handlers

void CBtmView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting	
	// TODO: Add your message handler code here
	CPen *pOldPen;
	CRect rect;
	GetClientRect(&rect);
	dc.SelectObject(myhFont);	
	pOldPen = dc.SelectObject(&m_pen);
	dc.SelectObject(m_pen);
	dc.SetBkMode(TRANSPARENT);
	pOldBrush = dc.SelectObject(pBrush);	

	dc.Rectangle(rect);
	// CH1通道幅值旋钮
/*	dc.Draw3dRect(300,22,102,116,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(300,22,103,117,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(302,24,401,137);*/
	dc.TextOut(330,123, "幅值旋钮");

	// CH2通道幅值旋钮
/*	dc.Draw3dRect(523,22,102,116,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(523,22,103,117,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(525,24,624,137);*/
	dc.TextOut(550,123, "幅值旋钮");

	// 时基旋钮
/*	dc.Draw3dRect(155,15,121,128,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(155,15,122,129,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(157,17,275,142);*/
	dc.TextOut(192,125, "时基旋钮");

	// 采样率旋钮
/*	dc.Draw3dRect(17,15,121,128,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(17,15,122,129,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(19,17,137,142);*/
	dc.TextOut(45,125, "采样率旋钮");
	
	// CH1垂直位置调节
/*	dc.Draw3dRect(410,30,86,90,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(410,30,87,91,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(412,32,495,119);*/

	// CH2垂直位置调节
/*	dc.Draw3dRect(638,30,86,90,RGB(240,240,220),RGB(80,80,80));
	dc.Draw3dRect(638,30,87,91,RGB(240,240,220),RGB(80,80,80));
	dc.Rectangle(640,32,723,119);*/

	dc.SelectObject(pOldBrush);
	dc.SelectObject(pOldPen);
	// Do not call CFormView::OnPaint() for painting messages
}


void CBtmView::OnCheckLft() 
{
	// TODO: Add your control notification handler code here	
//	theApp.m_bLeftBtn = !theApp.m_bLeftBtn;
	
//    m_LeftSlider.EnableWindow(theApp.m_bLeftBtn);
}

void CBtmView::OnCheckRgt() 
{
	// TODO: Add your control notification handler code here
 //   theApp.m_bRightBtn = !theApp.m_bRightBtn;
	
 //   m_RightSelider.EnableWindow(theApp.m_bRightBtn);
}

void CBtmView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	// CH1垂直位置调整旋钮
	m_LeftSlider.SetRange(-50,50,TRUE);
	m_LeftSlider.SetPos(0);
	m_LeftSlider.SetZero(204);					 // 起始点度数
	m_LeftSlider.SetKnobRadius(8);
	m_LeftSlider.SetDragByKnobOnly(	TRUE );
	m_LeftSlider.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_LeftSlider.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_LeftSlider.SetInverted();                  // 滑块背景颜色
	m_LeftSlider.SetBitmap(IDB_XUANNIU2);/**/
	m_LeftSlider.SetShowText(true);
	m_LeftSlider.SetText("位置");
	m_LeftSlider.SetFontName("Comic Sans MS");   // 字体样式
	m_LeftSlider.SetFontSize(12);                // 字体大小
	m_LeftSlider.SetFontItalic();                // 斜体字体
	m_LeftSlider.SetTextColor(RGB(0, 0, 255));   // 文本颜色
	m_LeftSlider.EnableWindow(theApp.m_bLeftBtn);

	// CH2垂直位置调整旋钮
	m_RightSelider.SetRange(-50,50,TRUE);
	m_RightSelider.SetPos(0);
	m_RightSelider.SetZero(204);					 // 起始点度数
	m_RightSelider.SetKnobRadius(8);
	m_RightSelider.SetDragByKnobOnly(	TRUE );
	m_RightSelider.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_RightSelider.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_RightSelider.SetInverted();                  // 滑块背景颜色
	m_RightSelider.SetBitmap(IDB_XUANNIU2);/**/
	m_RightSelider.SetShowText(true);
	m_RightSelider.SetText("位置");
	m_RightSelider.SetFontName("Comic Sans MS");   // 字体样式
	m_RightSelider.SetFontSize(12);                // 字体大小
	m_RightSelider.SetFontItalic();                // 斜体字体
	m_RightSelider.SetTextColor(RGB(0, 0, 255));   // 文本颜色
	m_RightSelider.EnableWindow(theApp.m_bRightBtn);

	// CH1通道幅值旋钮
	m_rscSlider2.SetRange(0, 100, FALSE);        // 最小与最大位置
	m_rscSlider2.SetPos(50);					 // 设置当前位置
	m_rscSlider2.SetZero(222);					 // 起始点度数
	m_rscSlider2.SetKnobRadius(8);
	m_rscSlider2.SetDragByKnobOnly(	TRUE );
	m_rscSlider2.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_rscSlider2.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_rscSlider2.SetInverted();                  // 滑块背景颜色
	m_rscSlider2.SetBitmap(IDB_XUANNIU1);/**/
    m_rscSlider2.SetShowText(true);
	theApp.m_fVoleteVal1 = ((float)(100 - m_rscSlider2.GetPos()))/10;
	theApp.m_fVoleteVal2 = ((float)(100 - m_rscSlider2.GetPos()))/10;
	theApp.m_strVoleteVal1.Format("%.1f",theApp.m_fVoleteVal1);
	theApp.m_strVoleteVal1 = theApp.m_strVoleteVal1 + "伏/格";
	m_rscSlider2.SetText("幅度");
	theApp.m_strVolete1 = theApp.m_strVoleteVal1;
	theApp.m_strVolete2 = theApp.m_strVoleteVal1;
	m_rscSlider2.SetFontName("Comic Sans MS");   //字体样式
	m_rscSlider2.SetFontSize(14);                //字体大小
	m_rscSlider2.SetFontItalic();                //斜体字体
	m_rscSlider2.SetTextColor(RGB(0, 0, 255));   //文本颜色

	// CH2通道幅值旋钮
	m_VolCH2Slider.SetRange(0, 100, FALSE);        // 最小与最大位置
	m_VolCH2Slider.SetPos(50);					 // 设置当前位置
	m_VolCH2Slider.SetZero(222);					 // 起始点度数
	m_VolCH2Slider.SetKnobRadius(8);
	m_VolCH2Slider.SetDragByKnobOnly(	TRUE );
	m_VolCH2Slider.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_VolCH2Slider.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_VolCH2Slider.SetInverted();                  // 滑块背景颜色
	m_VolCH2Slider.SetBitmap(IDB_XUANNIU1);/**/
    m_VolCH2Slider.SetShowText(true);
	theApp.m_fVoleteVal2 = ((float)(100 - m_VolCH2Slider.GetPos()))/10;
	theApp.m_strVoleteVal2.Format("%.1f",theApp.m_fVoleteVal2);
	theApp.m_strVoleteVal2 = theApp.m_strVoleteVal2 + "伏/格";
	m_VolCH2Slider.SetText("幅度");
	theApp.m_strVolete2 = theApp.m_strVoleteVal2;
	m_VolCH2Slider.SetFontName("Comic Sans MS");   //字体样式
	m_VolCH2Slider.SetFontSize(14);                //字体大小
	m_VolCH2Slider.SetFontItalic();                //斜体字体
	m_VolCH2Slider.SetTextColor(RGB(0, 0, 255));   //文本颜色

	// 时基旋钮
	m_TimerSlider.SetRange(1, 199, FALSE);        // 最小与最大位置
	m_TimerSlider.SetPos(100);					 // 设置当前位置
	m_TimerSlider.SetZero(222);					 // 起始点度数
	m_TimerSlider.SetKnobRadius(8);
	m_TimerSlider.SetDragByKnobOnly(	TRUE );
	m_TimerSlider.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_TimerSlider.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_TimerSlider.SetInverted();                  // 滑块背景颜色
	m_TimerSlider.SetBitmap(IDC_XUANNIU);/**/
    m_TimerSlider.SetShowText(true);
	m_TimerSlider.SetText("时基");
	m_TimerSlider.SetFontName("Comic Sans MS");   // 字体样式
	m_TimerSlider.SetFontSize(14);                // 字体大小
//	m_TimerSlider.SetFontItalic();                // 斜体字体
	m_TimerSlider.SetTextColor(RGB(0, 0, 255));   // 文本颜色

	// 采样率旋钮(粗调)
	m_SampleSlider.SetRange(1, 100, FALSE);       // 最小与最大位置
	m_SampleSlider.SetPos(50);					  // 设置当前位置
	m_SampleSlider.SetZero(222);				  // 起始点度数
	m_SampleSlider.SetKnobRadius(8);
	m_SampleSlider.SetDragByKnobOnly(	TRUE );
	m_SampleSlider.SetKnobColor(RGB(0, 255, 0));   // 指针颜色
	m_SampleSlider.SetActiveKnobColor( RGB ( 255,0,0 ) );
	m_SampleSlider.SetInverted();                  // 滑块背景颜色
	m_SampleSlider.SetBitmap(IDC_XUANNIU); 
    m_SampleSlider.SetShowText(true);
	m_SampleSlider.SetText("采样率");
	m_SampleSlider.SetFontName("宋体");            //字体样式
	m_SampleSlider.SetFontSize(14);                //字体大小
//	m_SampleSlider.SetFontItalic();                //斜体字体
	m_SampleSlider.SetTextColor(RGB(0, 0, 255));   //文本颜色

	m_bitmap1.DeleteObject();
	m_bitmap1.LoadBitmap(IDB_BITMAP_STARTUPBTN);
	m_StartupBtn.SetBitmap((HBITMAP)m_bitmap1);

	m_bitmap2.DeleteObject();
	m_bitmap2.LoadBitmap(IDB_BITMAP_STARTBTN);
	m_StartBtn.SetBitmap((HBITMAP)m_bitmap2);

	m_bitmap3.DeleteObject();
	m_bitmap3.LoadBitmap(IDB_BITMAP_ADDWAVEBTN);
	m_AddWaveBtn.SetBitmap((HBITMAP)m_bitmap3);

	m_bitmap4.DeleteObject();
	m_bitmap4.LoadBitmap(IDB_BITMAP_EXITBTN);
	m_ExitBtn.SetBitmap((HBITMAP)m_bitmap4);

	// 采样率旋钮(细调)
	m_SampleRigor.SetRange(1, 20000, FALSE);  // 最小与最大位置
	m_SampleRigor.SetPos(10000);
	UpdateData();
	theApp.m_mySample = m_NumSampleRigor;
	theApp.m_nTimer = m_NumTimerSlier*10;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -