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); 

 

相关知识仍待补充。。。。

posted @ 2016-01-02 15:13  Eulring  阅读(620)  评论(0)    收藏  举报