Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long |
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) |
参数 | 意义 |
---|---|
dwFlags | 鼠标动作标记 |
dx | 表示 x 方向坐标或偏移 |
dy | 表示 y 方向坐标或偏移 |
cButtons | 滚轮滚动值,正值向上,负值向下 120 表示滚轮按下 |
dwExtraInfo | 附加值,GetMessgeExtrainfo 函数 |
这些消息中,鼠标位置为屏幕位置。
参数 | 意义 |
---|---|
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 | 表明 dx,dy 为鼠标绝对坐标,否则为相对移动位置(点数) 注:绝对坐标时,屏幕右下角坐标是 (65535,65535) |
Public Const MOUSEEVENTF_MOVE = &H1 | 发生移动 |
Public Const MOUSEEVENTF_LEFTDOWN = &H2 | 按下鼠标左键 |
Public Const MOUSEEVENTF_LEFTUP = &H4 | 松开鼠标左键 |
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 | 按下鼠标右键 |
Public Const MOUSEEVENTF_RIGHTUP = &H10 | 松开鼠标右键 |
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 | 按下鼠标中键 |
Public Const MOUSEEVENTF_MIDDLEUP = &H40 | 松开鼠标中键 |
MOOSEEVENTF_WHEEL | 鼠标滚轮滚动。移动的数量由 cButtons 给出 |
参数 | 意义 |
---|---|
hwnd | 接收消息的窗口句柄 |
msg | msg 鼠标消息 |
wParam | Hittest 光标所在元素 |
lParam | 指向 Point 结构的指针 |
这些消息中,鼠标位置为屏幕位置。
常量 | 意义 |
---|---|
WM_NCLBUTTONDBLCLK | 左键双击 |
WM_NCLBUTTONDOWN | 左键按下 |
WM_NCLBUTTONUP | 左键放开 |
WM_NCRBUTTONDBLCLK | 右键双击 |
WM_NCRBUTTONDOWN | 右键按下 |
WM_NCRBUTTONUP | 右键放开 |
WM_NCMBUTTONDBLCLK | 中键双击 |
WM_NCMBUTTONDOWN | 中键按下 |
WM_NCMBUTTONUP | 中键放开 |
代表光标位于窗口的位置,由系统发送 WM_NCHITTEST 消息及鼠标位置到窗口返回的值,同 DefWindowProc 函数。
截获此消息可修改实际的位置。
Hittest DefWindowProc(hwnd, WM_NCHITTEST, 0, makelparam(x,y)) |
常量 | 意义 |
---|---|
HTBORDER | 不可调窗口的边框 |
HTBOTTOM | 底部边框 |
HTBOTTOMLEFT | 左下角边框 |
HTBOTTOMRIGHT | 右下角边框 |
HTCAPTION | 标题栏 |
HTCLIENT | 客户区 |
HTCLOSE | 关闭按钮 |
HTERROR | On the screen background or on a dividing line between windows (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error) |
HTGROWBOX | In a size box (same as HTSIZE) |
HTHELP | 帮助按钮 |
HTHSCROLL | 水平滚动条 |
HTLEFT | 左边框 |
HTMENU | 菜单栏 |
HTMAXBUTTON | 最大化按 |
HTMINBUTTON | 最小化按钮 |
HTNOWHERE | On the screen background or on a dividing line between windows |
HTREDUCE | 最小化按钮 |
HTRIGHT | 右边框 |
HTSIZE | In a size box (same as HTGROWBOX) |
HTSYSMENU | 系统菜单或子菜单的关闭按钮 |
HTTOP | 顶部边框 |
HTTOPLEFT | 左上角边框 |
HTTOPRIGHT | 右上角边框 |
HTTRANSPARENT | In a window currently covered by another window in the same thread (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT) |
HTVSCROLL | 垂直滚动条 |
HTZOOM | 最大化按钮 |
参数 | 意义 |
---|---|
hwnd | 接收消息的窗口句柄 |
msg | msg 鼠标消息 |
lParam | 鼠标屏幕位置,低位 X,高位 Y |
常量 | 意义 |
---|---|
WM_MOUSEMOVE = 0x0200 | 鼠标移动 |
WM_LBUTTONDOWN = 0x0201 | 左键按下 |
WM_LBUTTONUP = 0x0202 | 左键放开 |
WM_LBUTTONDBLCLK = 0x0203 | 左键双击 |
WM_RBUTTONDOWN = 0x0204 | 右键按下 |
WM_RBUTTONUP = 0x0205 | 右键放开 |
WM_RBUTTONDBLCLK = 0x0206 | 右键双击 |
WM_MBUTTONDOWN = 0x0207 | 中键按下 |
WM_MBUTTONUP = 0x0208 | 中键放开 |
WM_MBUTTONDBLCLK = 0x0209 | 中键双击 |
WM_MOUSEWHEEL = 0x020A | 滚动 |
SetCursorPos(1279,0); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); |