|
制作可以自动隐藏的弹出式菜单(5) '== 硬件与系统函数 ============================= Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Public Declare Function GetTickCount Lib "kernel32" () As Long Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Public Const VK_ESCAPE = &H1B Public Const KEYEVENTF_KEYUP = &H2 Type POINTAPI X As Long Y As Long End Type '== 控件与消息函数 ============================= 'CallWindowProc 把消息信息传递给指定的窗体过程 'GetClassName 为指定的窗口取得类名 'SetWindowLong 在窗体结构中为指定的窗体设置信息。返回值:Long,指定数据的前一个值。 'WindowFromPoint 返回包含了指定点的窗口的句柄。 Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function GetClassNameA Lib "user32" (ByVal hWnd As Long, lpClassName As Any, ByVal nMaxCount As Long) As Long 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 WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long '-- SetWindowLong ------------------------------ Public Const GWL_WNDPROC = -4 '=============================================== Public Const WM_ENTERIDLE = &H121 '=============================================== Public MeOldWndProc As Long '旧的窗体消息处理程序地址 Public ShowMsg As Boolean Public OldIn As Boolean Public OldTime As Long Public ChkTime As Boolean Public Function ClassName(ByVal hWnd As Long) As String Dim StrData(0 To &H100) As Byte Dim Rc As Long Rc = GetClassNameA(hWnd, StrData(0), &H100) If Rc > 0 Then
|