以下**主要**於codeproject上乙個用漸變色填充dc的static控制項中的一部分**。
//這是要使用的函式原型:
typedef uint (callback*lpgndllfunc)(hdc,const ptrivertex,dword,const pvoid,dword,dword);
hinstancehinst_msimg32 =null;
static
lpgndllfuncpdllfunc_gradientfill;
//初始化:
hinst_msimg32 = loadlibrary( "
msimg32.dll");
if( hinst_msimg32 )
//函式定義:
/** 在pdcmem上以fillmode模式填充矩形區域prect
* pdcmem為要繪製的dc
* prect為矩形區域
* fillmode包括橫向填充與縱向填充兩個
* crhicolor為漸變色的一端,另一端預設為白色
* breverse是否逆向填充,即由白色漸變到cfhicolor還是由crhicolor漸變到白色
*/void drawgradientfill(cdc* pdcmem, crect*prect, backfillmode fillmode, colorref crhicolor, bool breverse)
rcvertex[
0].x=prect->left;
rcvertex[
0].y=prect->top;
rcvertex[
0].red=getrvalue(crlocolor)<<8
; rcvertex[
0].green=getgvalue(crlocolor)<<8
; rcvertex[
0].blue=getbvalue(crlocolor);
rcvertex[
1].y=prect->bottom;
rcvertex[
1].red=getrvalue(crhicolor)<<8
; rcvertex[
1].green=getgvalue(crhicolor)<<8
; rcvertex[
1].blue=getbvalue(crhicolor)<<8
; rcvertex[
1].alpha=0
; gradient_rect grect;
grect.upperleft=0
; grect.lowerright=1
; (pdllfunc_gradientfill)((hdc) *pdcmem ,(const ptrivertex)rcvertex,(dword)2,(const pvoid)&grect,(dword)1,(dword)
(fillmode == hgradient ?gradient_fill_rect_h : gradient_fill_rect_v) );
}
qml構建乙個漸變色的視窗
有時候在qt中需要用到漸變色這樣的特效,那麼如何實現乙個簡單的漸變色的視窗呢?在qml中漸變色的型別是gradient,漸變色可以通過兩個或者多個顏色值來指定,qml會自動在你指定的顏色之間進行插值。gradient使用gradidentstop來指定乙個顏色值和他的範圍的 0 1.0 之間 imp...
在as3 0中建立乙個填充漸變色的文字框
這週在學習過程中接觸到了文字框漸變色的填充問題,在網上查詢也發現好多都不太全,也不適合初學者快速進入。在此,我把這方面的 引數加以介紹。import flash.display.gradienttype import flash.display.sprite import flash.events....
每日一記 讓我們玩起流行的漸變色
正所謂風水輪流轉,時尚永遠是迴圈的,當年的擬物到扁平,平了的不只是空間還有色彩,大家發現太平了玩不開,又設計出扁平陰影,現在 md 又把物料和空間帶回設計界,自然色彩上也開始復甦了,豐富的顏色又成了新的潮流。再看看硬體的發展,當年由於渲染陰影 漸變是十分耗效能的設計,設計開發都盡可能避免使用,而如今...