重複の可能性:
VB6 を使用した半透明フォーム
テキストをオンにしてすべて透明な複数のフォームを持つ vb アプリケーションを作成したいのですが、可能ですか?
透明なフォームだけでコードでやりたい場合。
VB: これを最初に宣言する
Dim g_nTransparency As Integer
Public Const LWA_COLORKEY = 1
Public Const LWA_ALPHA = 2
Public Const LWA_BOTH = 3
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = -20
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal Color As Long, ByVal X As Byte, ByVal alpha As Long) As Boolean
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Sub SetTranslucent(ThehWnd As Long, nTrans As Integer)
'SetWindowLong and SetLayeredWindowAttributes are API functions, see MSDN for details
Dim attrib As Long
attrib = GetWindowLong(ThehWnd, GWL_EXSTYLE)
SetWindowLong ThehWnd, GWL_EXSTYLE, attrib Or WS_EX_LAYERED
SetLayeredWindowAttributes ThehWnd, RGB(255, 255, 0), nTrans, LWA_ALPHA
End Sub
Public Function Transparent_Form()
g_nTransparency = 190
If g_nTransparency < 0 Then g_nTransparency = 0
If g_nTransparency > 255 Then g_nTransparency = 255
SetTranslucent Translucent.hwnd, g_nTransparency
Translucent.Show
mintCount = 0
End Function