程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MFC圖形處理,mfc圖形繪制編程實驗

MFC圖形處理,mfc圖形繪制編程實驗

編輯:C++入門知識

MFC圖形處理,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); 

 

相關知識仍待補充。。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved