鼠标输入

本部分介绍系统如何向应用程序提供鼠标输入,以及应用程序如何接收和处理该输入。

在本节中

主题 说明
关于鼠标输入
本主题讨论鼠标输入。
使用鼠标输入
本部分介绍与鼠标输入关联的任务。
鼠标输入参考

函数

名称 说明
_TrackMouseEvent 当鼠标指针离开窗口或将鼠标悬停在窗口上指定时间时发布消息。 如果存在,此函数将调用 TrackMouseEvent ,否则会模拟它。
BlockInput 阻止键盘和鼠标输入事件到达应用程序。
DragDetect 捕获鼠标并跟踪其移动,直到用户释放左键、按 ESC 键或将鼠标移动到围绕指定点的拖动矩形外部。 拖动矩形的宽度和高度由 GetSystemMetrics 函数返回的SM_CXDRAG和SM_CYDRAG值指定。
EnableMouseInPointer 使鼠标充当指向设备。
EnableWindow 启用或禁用指定窗口或控件的鼠标和键盘输入。 禁用输入后,窗口不会接收输入,如鼠标单击和按键。 启用输入后,窗口将接收所有输入。
GetCapture 如果捕获了鼠标的任何) ,则检索窗口 (句柄。 一次只能捕获一个窗口;此窗口接收鼠标输入,无论光标是否在其边框内。
GetDoubleClickTime 检索鼠标的当前双击时间。 双击是鼠标按钮的一系列两次单击,第二次是在第一次之后的指定时间内发生的。 双击时间是第一次单击和第二次双击之间可能发生的最大毫秒数。
GetMouseMovePointsEx 检索鼠标或笔之前最多 64 个坐标的历史记录。
IsWindowEnabled 确定是否为鼠标和键盘输入启用指定的窗口。
ReleaseCapture 从当前线程中的窗口释放鼠标捕获并还原正常的鼠标输入处理。 捕获鼠标的窗口接收所有鼠标输入,而不考虑光标的位置,除非在光标热点位于另一个线程的窗口中单击鼠标按钮时。
SendInput 合成击键、鼠标动作和按钮单击。
SetCapture 将鼠标捕获设置为属于当前线程的指定窗口。 SetCapture 捕获鼠标位于捕获窗口上时或鼠标按钮在捕获窗口上按下时捕获鼠标输入,并且按钮仍在关闭。 一次只能捕获一个窗口。
如果鼠标光标位于由另一个线程创建的窗口上,则仅当鼠标按钮关闭时,系统才会将鼠标输入定向到指定的窗口。
SetDoubleClickTime 设置鼠标的双击时间。 双击是鼠标按钮的一系列两次单击,第二次是在第一次之后的指定时间内发生的。 双击时间是第一次单击和第二次双击之间可能发生的最大毫秒数。
SwapMouseButton 反转或还原左右鼠标按钮的含义。
TrackMouseEvent 当鼠标指针离开窗口或将鼠标悬停在窗口上指定时间时发布消息。

以下函数已过时。

函数 说明
mouse_event 合成鼠标动作和按钮单击。

通知

名称 说明
WM_APPCOMMAND 例如,通过单击应用程序命令按钮或在键盘上键入应用程序命令键,通知用户生成应用程序命令事件。
WM_CAPTURECHANGED 发送到丢失鼠标捕获的窗口。
WM_LBUTTONDBLCLK 当用户双击鼠标左键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_LBUTTONDOWN 当用户按下鼠标左键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_LBUTTONUP 当用户在光标位于窗口的工作区时释放鼠标左键时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_MBUTTONDBLCLK 当用户双击鼠标中间按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_MBUTTONDOWN 当用户按下鼠标中间按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_MBUTTONUP 当用户释放鼠标中间按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_MOUSEACTIVATE 当光标处于非活动窗口中且用户按下鼠标按钮时发送。 仅当子窗口将其传递给 DefWindowProc 函数时,父窗口才会接收此消息。
WM_MOUSEHOVER 当光标悬停在窗口的工作区上之前对 TrackMouseEvent 调用中指定的时间段内,发布到窗口。
WM_MOUSEHWHEEL 当鼠标的水平滚轮倾斜或旋转时发送到焦点窗口。 DefWindowProc函数将消息传播到窗口的父级。 不应有消息的内部转发,因为 DefWindowProc 会将其传播到父链,直到找到处理消息的窗口。
WM_MOUSELEAVE 当光标离开之前对 TrackMouseEvent 调用中指定的窗口的工作区时,发布到窗口。
WM_MOUSEMOVE 光标移动时发布到窗口。 如果未捕获鼠标,则会将消息发布到包含光标的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_MOUSEWHEEL 当鼠标滚轮旋转时发送到焦点窗口。 DefWindowProc 函数将消息传播到窗口的父级。 不应有消息的内部转发,因为 DefWindowProc 会将其传播到父链,直到找到处理消息的窗口。
WM_NCHITTEST 发送到窗口以确定窗口的哪个部分对应于特定的屏幕坐标。 例如,当光标移动、按下或释放鼠标按钮或响应对 WindowFromPoint 等函数的调用时,可能会发生这种情况。 如果未捕获鼠标,则会将消息发送到光标下方的窗口。 否则,消息将发送到已捕获鼠标的窗口。
WM_NCLBUTTONDBLCLK 当用户双击鼠标左键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCLBUTTONDOWN 当用户按下鼠标左键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCLBUTTONUP 当用户释放鼠标左键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCMBUTTONDBLCLK 当用户双击鼠标中间按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCMBUTTONDOWN 当用户按下鼠标中间按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCMBUTTONUP 当用户释放中间鼠标按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCMOUSEHOVER 当光标悬停在窗口的非client区域上时,在之前对TrackMouseEvent 的调用中指定的时间段内发布到窗口。
WM_NCMOUSELEAVE 当光标离开之前对TrackMouseEvent 的调用中指定的窗口的非client 区域时,发布到窗口。
WM_NCMOUSEMOVE 当光标在窗口的非client 区域中移动时,发布到窗口。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCRBUTTONDBLCLK 当用户双击鼠标右键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCRBUTTONDOWN 当用户按下鼠标右键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCRBUTTONUP 当用户释放鼠标右键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCXBUTTONDBLCLK 当用户双击第一个或第二个 X 按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCXBUTTONDOWN 当用户按下第一个或第二个 X 按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_NCXBUTTONUP 当用户释放第一个或第二个 X 按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
WM_RBUTTONDBLCLK 当用户双击鼠标右键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_RBUTTONDOWN 当用户按下鼠标右键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_RBUTTONUP 当用户在光标位于窗口的工作区时释放鼠标右键时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_XBUTTONDBLCLK 当用户双击第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_XBUTTONDOWN 当用户按下第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。
WM_XBUTTONUP 当用户发布第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获了鼠标的窗口。

结构

名称 说明
HARDWAREINPUT 包含有关输入设备(而不是键盘或鼠标)生成的模拟消息的信息。
输入 包含用于合成输入事件的信息,例如击键、鼠标移动和鼠标单击。
LASTINPUTINFO 包含最后一个输入的时间。
MOUSEINPUT 包含有关模拟鼠标事件的信息。
MOUSEMOVEPOINT 包含有关鼠标在屏幕坐标中的位置的信息。
TRACKMOUSEEVENT TrackMouseEvent 函数用于跟踪鼠标指针离开窗口或将鼠标悬停在窗口上的指定时间。