MFC_自繪相關函數

StretchBlt 函數 : 從源矩形中複製一個位圖到目標矩形,必要時按目標設備設置的模式進行圖像的拉伸或壓縮。函數

StretchBlt 函數的定義形式爲:spa

BOOL StretchBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC,int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop);

BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);3d

第一個參數:x:指定目標矩形左上角的x座標指針

第二個參數:y:指定目標矩形左上角的y座標code

第三個參數:nWidth:指定目標矩形的寬度orm

第四個參數:nHeight:指定目標矩形的高度對象

第五個參數:pSrcDC:指定原矩形的cdc索引

第六個參數:xSrc:指定源矩形左上角的x座標字符串

第七個參數:ySrc:指定源矩形左上角的y座標class

第八個參數:nSrcWidth:指定源矩形的寬度

第九個參數:nSrcHeight:指定源矩形的高度

第十個參數:dwRop:指定要執行的圖形操做。圖形操做代碼定義了GDI如何在輸出操做中組合顏色,其中包括當前畫筆、可能的源位圖和目標位圖。

這個參數能夠是如下值之一:

BLACKNESS 使全部輸出變爲黑色。

DSTINVERT反轉目標位圖。

MERGECOPY使用Boolean和運算符組合模式和源位圖。

MERGEPAINT使用OR操做符將反向源位圖與目標位圖組合在一塊兒。

NOTSRCCOPY將反向源位圖複製到目標。

NOTSRCERASE反轉使用OR操做符組合目標位圖和源位圖的結果。

PATCOPY將模式複製到目標位圖。

PATINVERT使用布爾XOR操做符將目標位圖與模式組合在一塊兒。

PATPAINT使用Boolean或運算符將反向源位圖與模式組合在一塊兒。使用OR操做符將此操做的結果與目標位圖組合在一塊兒。

SRCAND使用Boolean和操做符組合目標位圖和源位圖的像素。

SRCCOPY將源位圖複製到目標位圖。

SRCERASE反轉目標位圖,並使用Boolean和操做符將結果與源位圖組合。

SRCINVERT使用布爾XOR操做符組合目標位圖和源位圖的像素。

SRCPAINT使用OR操做符組合目標位圖和源位圖的像素。

WHITENESS 使全部輸出變爲白色。

 

DrawText 函數 : 初始化給定矩形中的文本。要指定其餘格式選項,請使用CDC::DrawTextEx。

DrawText函數的定義形式爲:

virtual int DrawText(LPCTSTR lpszString,int nCount,LPRECT lpRect,UINT nFormat);

第一個參數:  lpszString : 指向要繪製的字符串。若是nCount爲-1,則字符串必須以null結尾。

第二個參數: nCount: 指定字符串中的字符數。若是nCount爲-1,則假定lpszString是指向以null結尾的字符串的長指針,DrawText自動計算字符計數。

第三個參數: lpRect: 指向包含要格式化文本的矩形(在邏輯座標中)的矩形結構或CRect對象。

第四個參數: nFormat: 指定格式化文本的方法。它能夠是Windows SDK中的DrawText中uFormat參數所描述的任何值的組合。(使用位或運算符組合):

int DrawText(const CString& str,LPRECT lpRect,UINT nFormat);

第一個參數:  str: 包含要繪製的指定字符的CString對象。

第二個參數:  lpRect: 指向包含要格式化文本的矩形(在邏輯座標中)的矩形結構或CRect對象。

第三個參數:nFormat: 指定格式化文本的方法。它能夠是Windows SDK中的DrawText中uFormat參數所描述的任何值的組合。(使用位或運算符組合):

CDC* pDC = CDC::FromHandle (lpDrawItemStruct->hDC);
//獲取位置
CRect rectSubItem;
GetSubItemRect(nItem, LINETYPE, LVIR_BOUNDS, rectSubItem);
pDC->DrawText (strName.c_str(), rectSubItem, DT_SINGLELINE | DT_VCENTER | DT_END_ELLIPSIS | DT_NOPREFIX);

 

Draw3dRect  函數 :繪製一個三維矩形。

Draw3dRect函數的定義形式爲:

void Draw3dRect(LPCRECT lpRect, COLORREF clrTopLeft,COLORREF clrBottomRight);

第一個參數:  lpRect : 指定邊框(以邏輯單元爲單位)。您能夠爲該參數傳遞指向RECT結構的指針或CRect對象。

第二個參數: 指定三維矩形的頂部和左側的顏色。

第三個參數: 指定三維矩形的底部和右側的顏色。

void Draw3dRect(int x,int y,int cx, int cy,COLORREF clrTopLeft,COLORREF clrBottomRight);

第一個參數:  x: 指定三維矩形左上角的邏輯x座標。

第二個參數:  y: 指定三維矩形左上角的邏輯y座標。

第三個參數:  cx: 指定三維矩形的寬度。

第四個參數:  cy: 指定三維矩形的高度。

第五個參數: clrTopLeft :指定三維矩形的頂部和左側的顏色。

第六個參數: clrBottomRight :指定三維矩形的底部和右側的顏色。

 

CImageList::DrawIndirect : 函數 繪製圖像列表。

DrawIndirect函數的定義形式爲:

BOOL DrawIndirect( CDC* pDC,  int nImage, POINT pt, SIZE sz, POINT ptOrigin, UINT fStyle = ILD_NORMAL, DWORD dwRop = SRCCOPY, COLORREF rgbBack = CLR_DEFAULT, COLORREF rgbFore = CLR_DEFAULT, DWORD fState = ILS_NORMAL, DWORD Frame = 0, COLORREF crEffect = CLR_DEFAULT );

第一個參數:  pDC:

第二個參數:  nImage: 要繪製的圖像的從零開始的索引。

第三個參數:  pt: 要繪製圖像的x和Y座標的點

第四個參數:  sz: 指示圖像的大小.

第五個參數: ptOrigin 指定繪製操做的左上角

第六個參數: fStyle :指定繪製樣式

第七個參數: dwRop: 指定要執行的圖形操做。

第八個參數: rgbBack : 圖像背景色,默認狀況下 CLR_DEFAULT:默認背景色。圖像繪製使用圖像列表背景色。 此參數能夠爲應用程序定義的RGB值或一個如下值:CLR_DEFAULT 和CLR_NONE:沒有背景色。 透明地繪製圖像。

第九個參數: rgbFore : 圖像前景色,默認狀況下 CLR_DEFAULT:默認前景色。 圖像繪製使用系統突出顯示顏色做爲前景顏色。。 此參數能夠爲應用程序定義的RGB值或一個如下值:CLR_DEFAULT 和 CLR_NONE: 沒有混合顏色。 圖像與目標dc的顏色相混合。

第十個參數: fState : 指定繪製狀態的標誌。 此成員能夠包含一個或多個圖像列表狀態標誌。

第十一個參數: Frame : ILS_SATURATE,該成員表示已添加到RGB三元色每一個顏色份量每一個像素的在圖標的值。 ILS_APLHA,該成員表示alpha通道的值。 此值能夠爲從0到255,0徹底透明和255是徹底不透明的。

第十二個參數: crEffect: 用於發光和陰影效果COLORREF  值。

相關文章
相關標籤/搜索