GDI操作函數(shù)
繪制文本TextOut和DrawText:
BOOL TextOut(HDC HDC,int nXStart,int nYStart,LPCTSTR lpString,int cbString)
int DrawText(HDC hdc,LPCTSTR lpString,int nCount,LPRECT lpRect,UINT uFormat)
TextOut根據(jù)坐標和長度繪制文本,DrawText則是給定一個矩形區(qū)域繪制文本。
繪制點SetPixel:
COLORREF SexPixel(HDC hdc,int x,int y,COLORREF crColor);
繪制直線MoveToEx和LineTo
BOOL MoveToEx(HDC hdc,int x,int y,LPPOINT lpPoint)
BOOL LineTo(HDC hdc,int nXEnd,int nYEnd)
繪制橢圓Ellipse
BOOL Ellipse(HDC hdc,int nLeftRect,int nTopRect,int RightRect,int nBottomRect)
繪制矩形FillRect與Rectangle
int FillRect(HDC hdc,CONST RECT *lprc,HBRUSH hbr)
BOOL Rectangle(HDC hdc,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect)
MFC對GDI進行了封裝,CDC是最基本的DC類,CClientDC與CWindowDC從CDC派生出來的。
例子:畫橢圓
CClientDC *pClientDC = (CClientDC*)this->GetDC();
pClientDC->Ellipse(CRect(0,0,200,300));
字體:
CFont font,*pOldFont;
CClientDC *pClientDC = (CClientDC*)this->GetDC();
font.CreatePointFont(90,"宋體"); //創(chuàng)建字體
pOldFont=pClientDC->SelectObject(&font);//設(shè)置字體
pClientDC->TextOut(300,300,"ABC");//輸出文本
pClientDC->SelectObject(pOldFont);//將先前字體設(shè)置回DC
畫筆
BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor)
畫刷
CBrush()
CBrush(COLORREF crColor)
CBrush(CBitmap *pBitmap)
位圖:使用CBitmap類來管理位圖
載入:CBitmap::LoadBitmap從資源中載入,CBitmap::LoadImage從磁盤文件中載入。
BOOL LoadBitmap(UINT nIDResource)
HANDLE LoadImage(HINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int cyDesired,UINT fuLoad)
顯示:普通顯示BitBlt,拉伸顯示StretchBlt
BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop)
BOOL StretchBlt(HDC hdcDest,int nXOriginDest,int nYOriginDest,int nWidthDest,int nHeightDest,HDC hdcSrc,int nXOriginSrc,int nYOriginSrc,int nWidthSrc,int nHeightSrcDWORD dwRop)