MFC图形处理
关于MFC绘图功能入门
创建Dialog based MFC工程 打开Resource view 下的Dialog主界面
添加Picture control控件,为此控件添加CStatic的control变量m_pic
自创一个函数paint(); 用来在划定的Picture 控件中绘图;
函数定义如下 , 一个参数类型为CDC另一个为CRect
void project_name::paint(CDC *pDC, CRect &rect) { }
函数的调用方法:
CRect rect; m_pic.GetClientRect(&rect); paint(m_pic.GetDC(),rect);
paint函数具体内容:
void project_name::paint(CDC *pCD, CRect &rect) { //画矩形或者椭圆: //矩形和椭圆的参数类似Ellipse(x1,y1,x2,y2),Rectangle(x1,y1,x2,y2) //(x1,y1)代表所画区域左上角坐标,(x2,y2)代表右上角坐标 CBrush Brush; //创建画刷; CBrush *PreBrush; //创建旧画刷指针,用来消除 //方法1: Brush.CreateSolidBrush(RGB(0,0,0)); //设定画刷颜色和属性 PreBrush=pDC->SelectObject(&Brush); //选定使用此画刷 pDC->Rectangle(CRect); //使用此画刷画矩形 pDC->SelectObject(PreBrush); //放弃正在使用的画刷使用之前的 Brush.DeleteObject(); 方法2: Brush.CreateSolidBrush(RGB(0,0,255)); pDC->BeginPath(); pDC->Ellipse(10,10,100,100); pDC->EndPath(); pDC->SelectObject(&Brush); pDC->FillPath(); //画完在染色 画线: CPen Pen; CPen PrePen; Pen.CreatePen(PS_SOLID, 1, RGB(0,255,0)); //创建画笔 PrePen=pDC->SelectObject(&Pen); pDC->MoveTo(x0,y0); //将画笔移动到指定坐标 pDC->LineTo(x1,y1); //从当前坐标画到指定坐标 pDC->SelectObject(&Pen); //销毁画笔 Pen.DelectObject(); //如果画刷或者画笔不销毁的话,再次添加画刷或画笔效果会混合在一起 }
将控件所画内容清空:
GetDlgItem(m_pic)->ShowWindow(FALSE);
GetDlgItem(m_pic)->ShowWindow(TRUE);
相关知识仍待补充。。。。

浙公网安备 33010602011771号