VB菜鳥求API函式的解答

2022-05-30 07:22:11 字數 1282 閱讀 9740

1樓:匿名使用者

public declare function setlayeredwindowattributes lib "user32" (byval hwnd as long, byval crkey as long, byval balpha as byte, byval dwflags as long) as long

函式的原型為

bool setlayeredwindowattributes(

hwnd hwnd, // handle to the layered window

colorref crkey, // specifies the color key

byte balpha, // value for the blend function

dword dwflags // action

); 其中

hwnd是透明窗體的控制代碼,

crkey為掩碼的顏色,可以用rgb(r,g,b)來指定。

balpha是不透明度,取值範圍是(0,255),其中0代表全透明,255代表不透明。

dwflags是透明方式,可以取兩個值:

當取值為lwa_alpha時,crkey引數無效,balpha引數有效;

當取值為lwa_colorkey時,窗體中的所有顏色為crkey的地方將變為透明,balpha引數無效。

lwa_alpha = 0x2

lwa_colorkey=0x1

也可以取兩個值的組合:lwa_alpha or lwa_colorkey。這樣crkey的地方將變為全透明,而其它地方根據balpha引數確定透明度。

要使使窗體擁有透明效果,首先要有ws_ex_layered擴充套件屬性,方法:

先宣告getwindowlong和setwindowlong

dim rtn as long  rtn = getwindowlong(me.hwnd, -20)  rtn = rtn or ws_ex_layered  setwindowlong (me.hwnd, -20, rtn)

(舊的sdk沒有定義ws_ex_layered,所以可以直接指定為&h80000). (vc6.0 中主函式開頭加#define ws_ex_layered 0x00080000即可)

ws_ex_layered = &h80000

比如用c語言編windows sdk程式,實現透明視窗,在vc6.0中,開頭加一句#define ws_ex_layered 0x00080000

2樓:匿名使用者

呵呵,這個函式設定窗體透明度

vb函式的語法

其實在呼叫 function 過程 函式 用不用 call 都可以,區別就是用call就不理會返回的結果,只是呼叫而已,與呼叫sub 過程是一樣的,而不用call呼叫就代表要其返回的結果,正如這句 msgbox 圓面積為 cir bj 一樣。最佳的寫法應該這樣才直觀易懂 dim mreturn as...

三角函式,求高人解答,三角函式問題,求高人解答

sin 6 1 2,cos 6 3 2,sin 2 3 3 2,cos 2 3 1 2 6r的終邊與單位圓交點是 3 2,1 2 2 3的終邊與單位圓的交點為 1 2,3 2 即餘弦值為橫座標,正弦值為縱座標 另外,角與單位圓交點p向x軸作垂線垂點為m,記圓心為o,則有向線段om為該角的餘弦線,有向...

VB中findwindowex函式的用法

這個函式在msdn裡有詳細描述,請查詢。尋找視窗列表中第一個符合指定條件的頂級視窗 在vb裡使用 findwindow最常見的一個用途是獲得thunderrtmain類的隱藏視窗的控制代碼 該類是所有執行中vb執行程式的一部分。獲得控制代碼後,可用api函式getwindowtext取得這個視窗的名...