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

📄 dlgcaiji.cpp

📁 一个时时单片机发送数据测试代码
💻 CPP
字号:
// DlgCaiji.cpp : implementation file
//

#include "stdafx.h"
#include "LiHao.h"
#include "DlgCaiji.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgCaiji dialog


CDlgCaiji::CDlgCaiji(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgCaiji::IDD, pParent)
{

	BeginDown=0;
	begin[0].x=10;
	begin[0].y=10;
	begin[1].x=35;
	begin[1].y=40;

	rise[0].x=3;
	rise[0].y=5;
	rise[1].x=5;
	rise[1].y=3;

	//{{AFX_DATA_INIT(CDlgCaiji)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgCaiji::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgCaiji)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgCaiji, CDialog)
	//{{AFX_MSG_MAP(CDlgCaiji)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON1, OnDataCaiji)
	ON_BN_CLICKED(IDC_BUTTON2, OnDataCaijiEnd)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_CAIJI_END, OnCaijiEnd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgCaiji message handlers

void CDlgCaiji::OnPaint() 
{
	// TODO: Add your message handler code here
	CString str;		// 字符串
	LONG i;	// 循环变量
	// 最大计数
	CRect rect(0,0,600,600);
	GetClientRect(rect);
	ClientToScreen(&rect);
	
	// 设备上下文
//	CPaintDC dc(this);
	// 获取绘制坐标的文本框
	CWnd* pWnd = GetDlgItem(IDC_COORD);
	
	// 指针
	CDC* pDC = pWnd->GetDC();
//	pWnd->Invalidate();
//	pWnd->UpdateWindow();
	
	pDC->Rectangle(0,0,600,600);
	
	// 创建画笔对象
	CPen* pPenRed = new CPen;
	
	// 红色画笔
	pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));

	// 创建背景对象
	CPen* pPenBack = new CPen;
	
	// 背景画笔
	pPenBack->CreatePen(PS_SOLID,1,RGB(128,128,128));
	
	// 创建画笔对象
	CPen* pPenBlue = new CPen;
	
	// 蓝色画笔
	pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0, 255));
	
	// 创建画笔对象
	CPen* pPenGreen = new CPen;
	
	// 绿色画笔
	pPenGreen->CreatePen(PS_DOT,1,RGB(0,255,0));
	
	
	// 选中当前红色画笔,并保存以前的画笔
	pDC->SelectObject(pPenBack);
	
	// 绘制坐标轴
//	pDC->MoveTo(0,0);

	///绘制背景网格
	for (i = 0; i <600; i+=20)
	{
		pDC->MoveTo(i, 0);
		pDC->LineTo(i, 600);
		pDC->MoveTo(i, 0);

	}
	for (i = 0; i < 600; i +=20)
	{
		pDC->MoveTo(0, i);
		pDC->LineTo(600, i);
		pDC->MoveTo(0,i);
	}

	//得到随机数据,并绘图;
	//选中蓝色画笔,并保存以前的画笔

	pDC->SelectObject(pPenBlue);
	
	if(	BeginDown==1)
	{
		pDC->MoveTo(0,0);
        pDC->LineTo(60,60);
        BeginDown=0;
	}
	// Do not call CDialog::OnPaint() for painting messages
}

void CDlgCaiji::OnDataCaiji() 
{
	// TODO: Add your control notification handler code here
	
}

void CDlgCaiji::OnDataCaijiEnd() 
{
	// TODO: Add your control notification handler code here
	
}

COLORREF CDlgCaiji::SetColor(int x, int y)
{
    long red,blue,green;
	int px,py;
	CRect rect;
	GetClientRect(&rect);
	px=rect.Width();
	py=rect.Height();
	red=y*255/py;
	blue=((py-y)*255/py+x*255/px)/2;
	green=((py-y)*255+(px-x)*255/px)/2;
	return RGB(red+LineRand(2),green+LineRand(2),blue+LineRand(2));

}

UINT CDlgCaiji::LineRand(UINT max)
{
	int nRand=rand();
	float fLine=(float)max/RAND_MAX;
	float fVal=(float)fLine*nRand+0.5F;
	return (UINT)fVal;

}

//DEL void CDlgCaiji::OnCaijiBegin() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL 	BeginDown=1;
//DEL //	SetTimer(1,5,NULL);
//DEL 
//DEL }

void CDlgCaiji::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CClientDC dc(this);
	BeginDrawLine(&dc);
	
	CDialog::OnTimer(nIDEvent);
}

void CDlgCaiji::BeginDrawLine(CClientDC *pDC)
{
	CPen pen;
	pen.CreatePen(PS_SOLID,1,SetColor(begin[1].x,begin[1].y));
	CPen *pOldpen=pDC->SelectObject(&pen);
	pDC->MoveTo(begin[0].x,begin[0].y);
	pDC->LineTo(begin[1].x,begin[1].y);
	for(int i=0;i<2;i++)
	{

		begin[i].x=begin[i].x+rise[i].x;
		begin[i].y=begin[i].y+rise[i].y;
		if(begin[i].x<=5||begin[i].x>=630)
			rise[i].x=-rise[i].x;
		if(begin[i].y<=5||begin[i].y>=630)
			rise[i].y=-rise[i].y;

	}
	pDC->SelectObject(pOldpen);
}

void CDlgCaiji::OnCaijiEnd() 
{
	// TODO: Add your control notification handler code here
	BeginDown=0;

	KillTimer(1);
}

⌨️ 快捷键说明

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