VB实现窗体鼠标穿透

来源:百度知道 编辑:UC知道 时间:2024/06/20 07:59:22
我在网上找了好久都没找到取消鼠标穿透的方法,

Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Const WS_EX_TRANSPARENT As Long = &H20&
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 Sub Command1_Click()
SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED Or WS_EX_TRANSPARENT
End Sub
'取消鼠标穿透(一般窗体) SetWindowLong Me.hwnd, GWL_EXSTYLE, 0
'取消鼠标穿透(UpdateLayeredWindow画窗体) SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED

鼠标穿透是一种窗体模式,透明和鼠标不能点击与控制,可以点击和控制窗体后面的程序或则文件,不过现在我也没有找到取消的方法 应该是有一个函数再从新调用回来!
呵呵 刚刚找到的 ! 规则的Form窗体可以!
SetWindowLong Me.hWnd, GWL_EXSTYLE, WS_EX_LAYERED