MFC 学习之 对话框作图<1>

来源:互联网 发布:ai聊天机器人源码 编辑:程序博客网 时间:2024/05/16 12:21

1、作图实现在按钮消息响应函数中,而不是绘图函数 OnPaint 或者 OnDraw 中。

不会刷新,适合读取本地文件数据并显示。

// 定义的几种画笔    CPen pen[5];    pen[0].CreatePen(PS_SOLID,3,RGB(255,0,0));//创建实线画笔    pen[1].CreatePen(PS_DASH,1,RGB(0,255,0));//创建虚线画笔    pen[2].CreatePen(PS_DOT,1,RGB(0,0,255));//点线    pen[3].CreatePen(PS_DASHDOT,1,RGB(0,255,255));//点划线    pen[4].CreatePen(PS_DASHDOTDOT,1,RGB(255,0,255));//双点划线

绘图按钮响应函数

//pic_drawvoid CMFC_FRAMEDlg::OnBnClickedDraw(){Rect_Draw();   // rectangleCirc_Draw();   // circleMline_Draw();  //muilt line}
void CMFC_FRAMEDlg::Rect_Draw(){  CDC* pDC=GetDC();//定义pDC 单文档中可以不定义  CPen pen;  pen.CreatePen(PS_SOLID,3,RGB(255,0,0));//创建实线画笔  CPen *pOldPen;  pOldPen=pDC->SelectObject(&pen);  pDC->Rectangle(10,10,50,50);  pDC->SetBkColor(RGB(0,100,200));  pDC->TextOut(10,55,"绘制矩形");  pDC->SelectObject(pOldPen);  pen.DeleteObject();}void CMFC_FRAMEDlg::Circ_Draw(){  CDC* pDC=GetDC();//定义pDC 单文档中可以不定义  CPen pen;  pen.CreatePen(PS_DASH,1,RGB(0,255,0));  CPen *pOldPen;  pOldPen=pDC->SelectObject(&pen);  pDC->SelectObject(&pen);  pDC->Ellipse(10,140,160,240);  pDC->SelectObject(&pen[3]);  pDC->Pie(20,150,150,230,160,160,10,160);  pDC->SelectObject(&pen[4]);  pDC->Arc(20,150,150,230,10,220,160,220);  pDC->TextOut(10,245,"绘制椭圆,弧线和饼图");  pDC->SetTextColor(RGB(0,0,255));  pDC->SelectObject(pOldPen);  pen.DeleteObject();}void CMFC_FRAMEDlg::Mline_Draw(){  CDC* pDC=GetDC();//定义pDC 单文档中可以不定义  CPen pen;  pen.CreatePen(PS_DASH,1,RGB(0,255,0));  CPen *pOldPen;  pOldPen=pDC->SelectObject(&pen);  pDC->SelectObject(&pen);  CPoint pts[]={CPoint(190,20),CPoint(200,60),CPoint(270,40),CPoint(210,80),CPoint(250,100),CPoint(300,3),CPoint(310,80)};  pDC->Polyline(pts,7);  pDC->TextOut(180,115,"绘制多段折线");  pDC->SelectObject(pOldPen);  pen.DeleteObject();}



0 0