關於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);
相關知識仍待補充。。。。