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