|
制作可以自动隐藏的弹出式菜单(6) ClassName = StrConv(LeftB(StrData, Rc), vbUnicode) Else ClassName = vbNullString End If End Function Public Sub Hook(ByVal hWnd As Long) MeOldWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc) End Sub Public Sub UnHook(ByVal hWnd As Long) Call SetWindowLong(hWnd, GWL_WNDPROC, MeOldWndProc) End Sub '消息处理 Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case uMsg Case WM_ENTERIDLE 'Debug.Print "WM_ENTERIDLE" ChkExit Case Else 'If ShowMsg Then Debug.Print uMsg '下级传递消息 WindowProc = CallWindowProc(MeOldWndProc, hWnd, uMsg, wParam, lParam) End Select End Function Public Sub ChkExit() Dim TempPoint As POINTAPI Dim TemphWnd As Long Dim TempBool As Boolean GetCursorPos TempPoint TemphWnd = WindowFromPoint(TempPoint.X, TempPoint.Y) If TemphWnd Then TempBool = (ClassName(TemphWnd) = "#32768") Else TempBool = False End If
|