好久没更新总结了,最近在调试系统板,实现AD数据采集,嵌入式硬件已经完成,接下来需要完成上位机软件,实现信号的采集显示。作为开篇,先来完成窗口布局和背景绘制吧!(开发平台为VS2013)
1)创建FMC对话框工程;
2)在CxxDlg类中添加DrawBackGround(CDC *pDC)函数;
3)在CxxDlg.cpp的OnPaint()函数中添加绘制背景代码(CDialogEx::OnPaint();语句前添加):
CPaintDC dc(this);
DrawBackGround(&dc);
要点:窗口的创建和区域更新均会自动调用OnPaint()函数,因此绘制函数放到次函数中。
4)在DrawBackGround(CDC *pDC)函数中添加绘制背景及线条代码。
要点:
a)填充背景:
CBrush *pBrush = new CBrush(RGB(0, 0, 0));
pDC->FillRect(&rect, pBrush);
delete pBrush;
b)设置画笔:
pDC->SetBkColor(RGB(0, 0, 0));//背景色,绘制虚线时能体现作用
CPen *pPen = new CPen();//创建画笔对象
pPen->CreatePen(PS_SOLID, 2, RGB(200, 200, 200));
CGdiObject *pOldPen = pDC->SelectObject(pPen);
c)绘制线条:
pDC->MoveTo(WINDOW_OFFSET, WINDOW_OFFSET);//起点
pDC->LineTo(WINDOW_OFFSET, WINDOW_OFFSET + WINDOW_HIGHT);//终点
d)更换画笔:
pPen->DeleteObject();
pPen->CreatePen(PS_DASHDOT, 1, RGB(50, 50, 50));
pDC->SelectObject(pPen);
e)释放画笔:
pDC->SelectObject(pOldPen);//恢复以前的画笔
delete pPen;
5)根据布局设计,适当调整对话框窗口大小即可,运行效果如下图。