"透明函式setlayeredwindowattributes
"使用這個函式,可以輕鬆的實現半透明窗體。按照微軟的要求,透明窗體窗體在建立時應使用ws_ex_layered引數(用createwindowex),或者在建立後設置該引數(用setwindowlong),我選用後者。全部函式、常量宣告如下:
privatedeclarefunctiongetwindowlonglib"user32"alias"getwindowlonga"(byvalhwndaslong,byvalnindexaslong)aslong
privatedeclarefunctionsetwindowlonglib"user32"alias"setwindowlonga"(byvalhwndaslong,byvalnindexaslong,byvaldwnewlongaslong)aslong
privatedeclarefunctionsetlayeredwindowattributeslib"user32"(byvalhwndaslong,byvalcrkeyaslong,byvalbalphaasbyte,byvaldwflagsaslong)aslong
"其中hwnd是透明窗體的控制代碼,crkey為顏色值,balpha是透明度,取值範圍是[0,255],dwflags是透明方式,可以取兩個值:當取值為lwa_alpha時,crkey引數無效,balpha引數有效;當取值為lwa_colorkey時,balpha引數有效而窗體中的所有顏色為crkey的地方將變為透明--這個功能很有用:我們不必再為建立不規則形狀的窗體而呼叫一大堆區域分析、建立、合併函數了,只需指定透明處的顏色值即可,哈哈哈哈!請看具體程式碼。
privateconstws_ex_layered=&h80000
privateconstgwl_exstyle=(-20)
privateconstlwa_alpha=&h2
privateconstlwa_colorkey=&h1
privatesubform_load()
"半透明
dimrtnaslong
rtn=getwindowlong(hwnd,gwl_exstyle)
rtn=rtnorws_ex_layered
setwindowlonghwnd,gwl_exstyle,rtn
setlayeredwindowattributeshwnd,0,125,lwa_alpha
endsub
"透明函式setlayeredwindowattributes
"使用這個函式,可以輕鬆的實現半透明窗體。按照微軟的要求,透明窗體窗體在建立時應使用ws_ex_layered引數(用createwindowex),或者在建立後設置該引數(用setwindowlong),我選用後者。全部函式、常量宣告如下:
privatedeclarefunctiongetwindowlonglib"user32"alias"getwindowlonga"(byvalhwndaslong,byvalnindexaslong)aslong
privatedeclarefunctionsetwindowlonglib"user32"alias"setwindowlonga"(byvalhwndaslong,byvalnindexaslong,byvaldwnewlongaslong)aslong
privatedeclarefunctionsetlayeredwindowattributeslib"user32"(byvalhwndaslong,byvalcrkeyaslong,byvalbalphaasbyte,byvaldwflagsaslong)aslong
"其中hwnd是透明窗體的控制代碼,crkey為顏色值,balpha是透明度,取值範圍是[0,255],dwflags是透明方式,可以取兩個值:當取值為lwa_alpha時,crkey引數無效,balpha引數有效;當取值為lwa_colorkey時,balpha引數有效而窗體中的所有顏色為crkey的地方將變為透明--這個功能很有用:我們不必再為建立不規則形狀的窗體而呼叫一大堆區域分析、建立、合併函數了,只需指定透明處的顏色值即可,哈哈哈哈!請看具體程式碼。
privateconstws_ex_layered=&h80000
privateconstgwl_exstyle=(-20)
privateconstlwa_alpha=&h2
privateconstlwa_colorkey=&h1
privatesubform_load()
"半透明
dimrtnaslong
rtn=getwindowlong(hwnd,gwl_exstyle)
rtn=rtnorws_ex_layered
setwindowlonghwnd,gwl_exstyle,rtn
setlayeredwindowattributeshwnd,0,125,lwa_alpha
endsub