Re: [VB6 ] 表單特效問題
※ 引述《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
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):