[New - Windows NT]
当旋转鼠标滚轮时,WM_MOUSEWHEEL消息被发送到对焦窗口。DefWindowProc函数将消息传播到窗口的父级。应该没有内部转发消息,因为DefWindowProc将其传播到父链,直到找到处理它的窗口。
WM_MOUSEWHEEL
fwKeys = LOWORD(wParam); //键标志
zDelta = (short) HIWORD(wParam); //轮转
xPos = (short) LOWORD(lParam); //水平位置的指针
yPos = (short) HIWORD(lParam); //指针的垂直位置
参数
【fwKeys】
【wParam中】的低位字的值。指示各种虚拟键是否关闭。此参数可以是以下值的任意组合:
值 | 描述 |
MK_CONTROL | 如果CTRL键关闭,请设置。 |
MK_LBUTTON | 设置鼠标左键是否关闭。 |
MK_MBUTTON | 设置中间的鼠标按钮是否关闭。 |
MK_RBUTTON | 设置鼠标右键是否关闭。 |
MK_SHIFT | 设置SHIFT键是否关闭。 |
【zDelta】
【wParam中】的高位字的值。表示车轮旋转的距离,以WHEEL_DELTA的倍数或分数表示,即120。正值表示车轮向前旋转,远离用户;负值表示车轮向后旋转,朝向用户。
【XPOS】
【lParam的】的低位字的值。指定相对于屏幕左上角的指针的x坐标。
【yPos】
【lParam的】的高位字的值。指定相对于屏幕左上角的指针的y坐标。
备注
zDelta参数将是WHEEL_DELTA的倍数,设置为120。这是采取行动的门槛,并且每个增量都应该出现一个这样的动作(例如,滚动一个增量)。
三角洲设定为120,以允许Microsoft或其他供应商在未来建立更精细的轮子,包括可能是一个自由旋转的轮子,没有凹口。期望这样的设备将每轮发送更多消息,但在每个消息中具有较小的值。为了支持这种可能性,您应该添加传入的增量值,直到达到WHEEL_DELTA(因此,给定的delta旋转得到相同的响应),或者滚动部分行以响应更频繁的消息。您也可以选择滚动细粒度并累积三角形,直到达到。
也可以看看