3.03 鼠标消息

鼠标消息分类

● 鼠标基本消息

  • VM_LBUTTONDOWN: 鼠标左键按下
  • VM_LBUTTONUP: 鼠标左键拾起
  • VM_RBUTTONDOWN: 鼠标右键按下
  • VM_RBUTTONUP: 鼠标右键抬起
  • VM_MOUSEMOVE: 鼠标移动消息

● 鼠标双击消息

  • VM_LBUTTONDBLCLK: 鼠标左键双击
  • VM_RBUTTONDBLCLK: 鼠标右键双击

● 鼠标滚轮消息

VM_MOUSEWHEEL: 鼠标滚轮消息

基本消息附带信息

  • NPARAM:其他按键的状态,例如 Ctrl/Shift 等
  • lParam:鼠标的位置,窗口客户区坐标系。
    • LOWORD X 坐标位置
    • HIWORD Y 坐标位置

一般情况鼠标按下/拾起成对出现。在鼠标移动过程中,会根据移动速度产生一系列的 VM_MOUSEMOVE 消息。

双击消息附带信息

  • NPARAM:其他按键的状态,例如 Ctrl/Shift 等
  • lParam:鼠标的位置,窗口客户区坐标系。
    • LOWORD X 坐标位置
    • HIWORD Y 坐标位置

● 消息产生顺序 以左键双击为例:

  • WM_LBUTTONDOWN
  • WM_LBUTTONUP
  • WM_LBUTTONDBLCLK
  • WM_LBUTTONUP

使用时需要在注册窗口类的时候添加 CS_DBLCLKS 风格。

滚轮附带消息

  • WPARAM:
    • LOWORD: 其他按键的状态
    • HIWORD: 滚轮的偏移量,通过正负值表示表示滚动方向。(正:向前滚动 负:向后滚动)
  • lPARAM:鼠标当前的位置,屏幕坐标系
    • LOWORD: X 坐标
    • HIWORD: Y 坐标

使用:通过偏移量,获取滚动的方向和距离。