菜鳥問題。關於API函式SetWindowLong的問題

時間 2022-03-12 01:35:23

1樓:網海1書生

第一個問題:你所列的**確實不能使視窗透明,你所說的書可能是比較早期的,也許是windows98系統之前的,也許那時候的系統是可以通過這個**使視窗透明的(由於找不到早期的作業系統,所以沒有測試,只是猜的)。但在xp系統中,只靠setwindowlong設定視窗的樣式是無法達到使視窗透明的目的的。

要用1樓所說的方法才行。

第二個問題:**可以寫成你說的樣子,而且這種**的寫法比上面的那個更規範。但基於上面第一個問題所述原因,它仍然不能實現使視窗透明的目的。

你在問題補充中所列操作步驟,並不能真正使視窗透明,只是在瞬間使視窗在裝置場景中消失而已,只要一拖動視窗,立馬就露出馬腳的。

2樓:匿名使用者

private sub form_load()setwindowlong me.hwnd, gwl_exstyle, ws_ex_transparent

me.refresh

end sub

3樓:

option explicit

'窗體透明宣告

private declare function getwindowlong lib "user32" alias "getwindowlonga" (byval hwnd as long, byval nindex as long) as long

private declare function setwindowlong lib "user32" alias "setwindowlonga" (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long

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

private const gwl_exstyle = (-20)

private sub form_load()

'透明實現部分,可將下面的vbblue改成窗體上(包括所有控制元件)任一一個不用的顏色

form1.backcolor = vbblue 'vbblue

dim rtn as long

rtn = getwindowlong(hwnd, gwl_exstyle)

rtn = rtn or ws_ex_layered

setwindowlong hwnd, gwl_exstyle, rtn

setlayeredwindowattributes hwnd, vbblue, 0, lwa_colorkey 'vbbule

end sub

4樓:匿名使用者

你這樣在是不會讓窗體透明的,getwindowlong 和 setwindowlong 這兩個api函式都沒有讓窗體變透明的功能,你需要另一個api 函式:setlayeredwindowattributes

有了setlayeredwindowattributes 才能實現視窗的透明!

**如下:

private declare function getwindowlong lib "user32.dll" alias "getwindowlonga" (byval hwnd as long, byval nindex as long) as long

private declare function setwindowlong lib "user32.dll" alias "setwindowlonga" (byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long

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

private sub form_load()

me.backcolor = vbred

setlayeredwindowattributes me.hwnd, vbred, 0, 1

end sub

這樣子就可以使得窗體變透明瞭!

5樓:匿名使用者

第二個才是正確的,但是變數名最好不用hwnd

第一個同時清除了其它exstyle,至於原理你可以看下位運算和掩模的相關概念(設定為or,清除為and not)

你說的透明指什麼?是有一個透明度還是有一種透明色?

關於幾個英語問題?本人菜鳥

檢楠 1.英語的特點是名詞前要有定冠詞,不定冠詞或物主代詞。如果不用her,可以用the 2.and做連詞 3.前者是單數,後者是複數 1.也可以不加 her lunches就指定是她的,lunches就泛指午飯 2.and作連詞是用得比較多的 3.mr swuyer 是第三人稱單數,動詞要加s或e...

關於超越函式的問題,關於數學的函式問題

對數函式的變數之間的關係不能用有限次加 減 乘 除 乘方 開方運算表示. 意思就是 只含加 減 乘 除 乘方 開方六種運算的叫代數函式 包括常函式 其他的叫超越函式,比如 指數函式 對數函式 三角函式 反三角函式 雙曲函式 等等 中學階段沒有嚴格定義 這個定義比你那個明確吧?你那個定義裡的變數間的關...

關於google手機的菜鳥問題,加分

中國電信天巽手機,我從原來的移動轉換成電信,用的還不錯,電信收費較低,訊號也不錯,天翼手機原來是從中國聯通收購後另擴充加小靈通,範圍比較廣。你可以嘗試一下,只是手機的型號沒那麼多。如果在深圳有機會到我們來坐坐 源進 設計0755 28167154位於深圳龍華民治民樂路民治維也納三好酒店一樓8號,附近...