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

📄 lftview.cpp

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

#include "stdafx.h"
#include "Vsbq.h"
#include "LftView.h"

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

extern CVsbqApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CLftView

IMPLEMENT_DYNCREATE(CLftView, CFormView)

CLftView::CLftView()
	: CFormView(CLftView::IDD)
{	
	m_bstart=false;
	//{{AFX_DATA_INIT(CLftView)
	m_strVoleteEdit1 = _T("");
	m_strVoleteEdit2 = _T("");
	m_strAverageCH1 = _T("");
	m_strAverageCH2 = _T("");
	m_strMode = _T("");
	m_SampleSpeed = _T("");

	//}}AFX_DATA_INIT
	pBrush = new CBrush;
	pBrush->CreateSolidBrush(RGB(212,208,200));	
	m_brBkgnd.CreateSolidBrush(RGB(212,208,200));
	m_brBkgnd1.CreateSolidBrush(RGB(255,255,255));
}

CLftView::~CLftView()
{
}

void CLftView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLftView)
	DDX_Text(pDX, IDC_VOLETECH1_EDIT, m_strVoleteEdit1);
	DDX_Text(pDX, IDC_VOLETECH2_EDIT, m_strVoleteEdit2);
	DDX_Text(pDX, IDC_AVERAGECH1_EDIT, m_strAverageCH1);
	DDX_Text(pDX, IDC_AVERAGECH2_EDIT, m_strAverageCH2);
	DDX_Text(pDX, IDC_MODE_EDIT, m_strMode);
		DDX_Control(pDX, IDC_BTN_TOP, m_btntopbar);
		DDX_Control(pDX, IDC_BTN_BTM, m_btnbtmbar);
	DDX_Text(pDX, IDC_SAMPLESPEED_EDIT, m_SampleSpeed);
	//}}AFX_DATA_MAP
	m_bitmaptop.DeleteObject();
	m_bitmaptop.LoadBitmap(IDB_BITMAP_TOP);
	m_btntopbar.SetBitmap((HBITMAP)m_bitmaptop);
	m_bitmapbtm.DeleteObject();
	m_bitmapbtm.LoadBitmap(IDB_BITMAP_BTM);
	m_btnbtmbar.SetBitmap((HBITMAP)m_bitmapbtm);
}


BEGIN_MESSAGE_MAP(CLftView, CFormView)
	//{{AFX_MSG_MAP(CLftView)
	ON_WM_CREATE()
	ON_MESSAGE(UM_SHOEMESSAGE, OnShowMessage)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_WM_LBUTTONDOWN()
	ON_WM_PAINT()
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLftView diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CLftView message handlers



void CLftView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	
}

int CLftView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFormView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	theApp.m_hWndLeftView = this->m_hWnd;
	return 0;
}

// 显示当前的电压和频率等值!
void CLftView::OnShowMessage()
{
	// 显示CH1通道的平均值
	if (theApp.m_strModeApp != "CH2")
	{
		if (theApp.m_nAverageCH1<1 && theApp.m_nAverageCH1>-1)
		{
			m_strAverageCH1.Format("%.1f", theApp.m_nAverageCH1*1000);
			m_strAverageCH1 += "mV";
		}
		else
		{
			m_strAverageCH1.Format("%.3f", theApp.m_nAverageCH1);
			m_strAverageCH1 += "V";
		}
	}
	else
	{
		m_strAverageCH1 = "已关闭";
	}
	

	// 显示CH2通道的平均值
	if (theApp.m_strModeApp != "CH1")
	{
		if (theApp.m_nAverageCH2<1 && theApp.m_nAverageCH2>-1)
		{
			m_strAverageCH2.Format("%.1f", theApp.m_nAverageCH1*1000);
			m_strAverageCH2 += "mV";
		}
		else
		{
			m_strAverageCH2.Format("%.3f", theApp.m_nAverageCH1);
			m_strAverageCH2 += "V";
		}
	}
	else
	{
        m_strAverageCH2 = "已关闭";
	}
	

	// 显示CH1通道的电压值
	if (theApp.m_strModeApp != "CH2")
	{
		if (theApp.m_numVoleteCh1<1 && theApp.m_numVoleteCh1>-1)
		{
			m_strVoleteEdit1.Format("%f", theApp.m_numVoleteCh1*1000.0);
			m_strVoleteEdit1 = m_strVoleteEdit1.Mid(0,5);
			m_strVoleteEdit1 += "mV";
		}
		else
		{
			m_strVoleteEdit1.Format("%.2f", theApp.m_numVoleteCh1);
			m_strVoleteEdit1 = m_strVoleteEdit1.Mid(0,4);
			m_strVoleteEdit1 += "V";
		}
	}
	else
	{
        m_strVoleteEdit1 = "已关闭";
	}
	

	// 显示CH2通道的电压值
	if (theApp.m_strModeApp != "CH1")
	{
		if (theApp.m_numVoleteCh2<1 && theApp.m_numVoleteCh2>-1)
		{
			m_strVoleteEdit2.Format("%f", theApp.m_numVoleteCh2*1000.0);
			m_strVoleteEdit2 = m_strVoleteEdit2.Mid(0,5);
			m_strVoleteEdit2 += "mV";
		}
		else
		{
			m_strVoleteEdit2.Format("%.2f", theApp.m_numVoleteCh2);
			m_strVoleteEdit2 = m_strVoleteEdit2.Mid(0,4);
			m_strVoleteEdit2 += "V";
		}
	}
	else
	{
		m_strVoleteEdit2 = "已关闭";
	}
	

	// 显示采样率的值
	if (theApp.m_sSampleSpeed>1000)
	{
		theApp.m_strSampleShow.Format("%.1f",theApp.m_sSampleSpeed/1000.0);
		m_SampleSpeed = theApp.m_strSampleShow + "KHZ";
	}
	else
	{
		theApp.m_strSampleShow.Format("%d",(int)(theApp.m_sSampleSpeed));
		m_SampleSpeed = theApp.m_strSampleShow + "HZ";
	}
	
	// 显示通行模式
	m_strMode = theApp.m_strModeApp;
	UpdateData(FALSE);
}

void CLftView::OnButton1() 
{
	// TODO: Add your control notification handler code here
 	CString my_str = "";
	int my_num = 16777215;
	my_str.Format("%0X",my_num);
	my_str.Insert(2," ");
	my_str.Insert(5," ");
}

void CLftView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
//	this->SetActiveView()
	CFormView::OnLButtonDown(nFlags, point);
}

void CLftView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CRect rect;
	GetClientRect(&rect);	
	dc.SelectObject(pBrush);	

	dc.Rectangle(rect);
	// Do not call CFormView::OnPaint() for painting messages
}

HBRUSH CLftView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
	
	if(pWnd->GetDlgCtrlID() == IDC_1STATIC || pWnd->GetDlgCtrlID() == IDC_2STATIC
		 || pWnd->GetDlgCtrlID() == IDC_3STATIC || pWnd->GetDlgCtrlID() == IDC_4STATIC 
		 || pWnd->GetDlgCtrlID() == IDC_5STATIC || pWnd->GetDlgCtrlID() == IDC_6STATIC 
		 || pWnd->GetDlgCtrlID() == IDC_7STATIC || pWnd->GetDlgCtrlID() == IDC_8STATIC
		 || pWnd->GetDlgCtrlID() == IDC_9STATIC)
	{
		pDC->SetTextColor(RGB(0,0,0));
		pDC->SetBkMode(TRANSPARENT);
		return (HBRUSH)m_brBkgnd;
	}
	else if(pWnd->GetDlgCtrlID() == IDC_VOLETECH1_EDIT || pWnd->GetDlgCtrlID() == IDC_VOLETECH2_EDIT
		 || pWnd->GetDlgCtrlID() == IDC_AVERAGECH1_EDIT || pWnd->GetDlgCtrlID() == IDC_AVERAGECH2_EDIT 
		 || pWnd->GetDlgCtrlID() == IDC_SAMPLESPEED_EDIT || pWnd->GetDlgCtrlID() == IDC_MODE_EDIT)
	{
		pDC->SetTextColor(RGB(0,0,0));
		pDC->SetBkMode(TRANSPARENT);
		return (HBRUSH)m_brBkgnd1;
	}
	else
	{
		return hbr;
	}
}

⌨️ 快捷键说明

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