Re: [VB6 ] 表單特效問題

看板Visual_Basic作者 (邪修歲月)時間17年前 (2007/05/04 09:14), 編輯推噓3(303)
留言6則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Berger927 (rabbit)》之銘言: : 請問有沒有人知道,如何使表單在已經繪製桌布的狀況下,再使表單半透明化? : 我用API兜,雖然有效果出現,但螢幕左上角會出現一個黑色的遮罩。 : 無論如何就是無法排除掉這個狀況,而且程式關閉後也不會回覆。 : 有請高手解惑,感恩! 忘了在哪邊找到的了 宣告部份: Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Const WS_EX_LAYERED = &H80000 Const GWL_EXSTYLE = (-20) Const LWA_ALPHA = &H2 Const LWA_COLORKEY = &H1 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 程式碼: Dim Buf As Long Buf = GetWindowLong(Me.hwnd, GWL_EXSTYLE) '取得視窗原本的樣式 Buf = Buf Or WS_EX_LAYERED '在視窗上面添加一個新的樣式WS_EX_LAYERED SetWindowLong Me.hwnd, GWL_EXSTYLE, Buf '把新的樣式指定給視窗 SetLayeredWindowAttributes Me.hwnd, 0, R, LWA_ALPHA 'R越大視窗越清楚,為0則變 成全透明(看不到) 方便的話可以說明一下你的半透明是以什麼方式寫的嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.81.88.26

05/05 03:57, , 1F
就是第一個API
05/05 03:57, 1F

05/05 03:59, , 2F
第三個參數值可以調整透明度
05/05 03:59, 2F

05/05 04:02, , 3F
我們作法一樣,可是你的不會跑出黑色遮罩出來嗎?
05/05 04:02, 3F

05/06 01:41, , 4F
不會
05/06 01:41, 4F

05/06 03:14, , 5F
囧... 是我電腦的問題ㄚ... >"<
05/06 03:14, 5F

05/06 03:15, , 6F
感謝~~~ ^^
05/06 03:15, 6F
文章代碼(AID): #16EeZp_F (Visual_Basic)
文章代碼(AID): #16EeZp_F (Visual_Basic)