天天看點

MFC中,怎樣在一個特定的控件裡畫圖

建立了一個基于對話框或基于CFormView的應用程式,

拖入了一個長方形的Picture類型控件,控件的ID為IDC_PIC1,type為Frame,(Type還有Rectange、BitMap等類型)

Sunken、Border為選中狀态,

現在想在該控件中畫圖,

實作方法為,在OnDraw函數中加入以下代碼:

CRect rect;

CWnd *pWin = GetDlgItem(IDC_PIC1);//擷取該控件的指針,就可以對該控件直接操作了

pWin->GetClientRect(rect);//把控件的長寬、坐标等資訊儲存在rect裡

int width=rect.Width();//可以擷取寬和高

int height=rect.Height();

CString str;

str.Format("高度為:%d,寬度為:%d",height,width);

        AfxMessageBox(str,MB_YESNO|MB_ICONSTOP,0);

CDC *pDc = pWin->GetDC();//擷取該控件的畫布

        //有了畫布,下面可以自由的畫圖了,想怎麼畫就怎麼話,

pDc->Rectangle(rect);

CBrush myBrush;

myBrush.CreateSolidBrush(RGB(192,250,233));

pDc->FillRect(rect,&myBrush);

其實,實作起來很簡單,關鍵語句就是加粗體的語句

即,要擷取某個區域的指針,然後擷取畫布