對GDI中的GradientFill的封裝

2021-04-30 08:34:06 字數 876 閱讀 5851

在msdn中graphic section部分有兩個api是拿來單獨描述的,他們分別是alphablend和gradientfill,alphablend的參數列類似bitble,但gradientfill,從它們的參數列能看出它比較複雜,於是我做了封裝

bool gradientfill(hdc hdc,ptrivertex pvertex,ulong nvertex, pvoid pmesh,ulong ncount, ulong ulmode);

//h檔案,首先封裝乙個rgb類

//封裝rgb

class crgb;

#ifdef _unittest

class crgb

#else

class dllexport crgb

#endif

;//cpp檔案

//封裝rgb

crgb::crgb(int r,int g,int b,int a)

//封裝的目的實現對目標dc的目標區域內的慚變透明貼圖

hdc:目標視窗的hdc

crt:目標區域

cr1:開始的色彩

cr2:結束的色彩

fillstyle:填充的方向,橫向填充還是豎向填充

btran:是否做透明填充

void cpicloader::gradientfillrect(hdc hdc,const crect* crt,const crgb* cr1,const crgb* cr2,ulong fillstyle,bool btran)

else

selectobject(hdcgra,holdgrabmp);

deleteobject(hbmpgra);

deletedc(hdcgra);

//}}

C 中的 gdi 而不是 gdi

我記得有多種方法的,不過我現在的部分資料還沒恢復,下面這個是的.我記得我用是因為 gdi 的字串繪畫時無法限制在區域內,而 gdi 是可以的.這實在是奇怪.2009 09 02 14 20 08 最近重寫tabcontrol控制項,但是發現tab與其中的字型長度不合適,我希望長度應該是正合適的情況。...

GDI 中的圓角矩形

gdi 是對gdi的乙個令人興奮的擴充套件,但由於某些原因,它沒有提供繪製圓角矩形的函式,雖然我們可以在gdi 中使用gdi中的函式,但這樣一來我們沒辦法在圓角矩形中使用gdi 中的紋理和透明色等新特性。怎麼辦?gdi 中有乙個graphicspath 的類,我們可以用它構造各種形狀並且可用任何畫刷...

GDI 中的圓角矩形

翻譯 李昊 原文出處 http www.codeproject.com 源 gdiplusroundedrect gdi 是對gdi的乙個令人興奮的擴充套件,但由於某些原因,它沒有提供繪製圓角矩形的函式,雖然我們可以在gdi 中使用gdi中的函式,但這樣一來我們沒辦法在圓角矩形中使用gdi 中的紋理...