CWnd::OnMouseWheel

afx_msg BOOL OnMouseWheel( UINT nFlags, short zDelta, CPoint pt );

返回值:如果允许鼠标轮滚动,则返回非零值;否则返回0。

参数:
nFlags指明是否按下了虚拟键。这个参数可以是下列值的组合:
·MK_CONTROL如果CTRL键被按下,则设置此位。
·MK_LBUTTON如果鼠标左键被按下,则设置此位。
·MK_MBUTTON如果鼠标中键被按下,则设置此位。
·MK_RBUTTON如果鼠标右键被按下,则设置此位。
·MK_SHIFT如果SHIFT键被按下,则设置此位。
zDelta指明了旋转的距离。zDelta值以WHEEL_DELTA,即120的倍数或部分的形式表达。小于零的数表明往回滚动(向着用户),而大于零的数表明滚向远处(离开用户)。用户可以在鼠标软件中改变滚轮设置以反转这种响应。有关这个参数的更多信息参见说明部分。
pt指定了光标的x和y轴坐标。这些坐标通常是相对于窗口的左上角的。

说明:
当用户旋转鼠标滚轮并达到滚轮的下一个刻度时,框架就调用这个成员函数。除非被重载,否则OnMouseWheel调用WM_MOUSEWHEEL的缺省处理。Windows自动将该消息转发到具有输入焦点的控件或子窗口。Win32函数DefWindowProc将该消息上传到拥有它的窗口。
zDelta参数是WHEEL_DELTA的倍数,它被设为120。这个值是要采取的动作的开端,这一类动作(比如向前滚动到下一个刻度)必须为每一个delta产生。
delta被设为120,以允许将来使用更高精度的滚轮,例如没有刻度的自由旋转滚轮。这种设备在每次旋转是可能会发送多个消息,但是每次消息中的值更小。要支持这个可能性,或者可以累计输入的delta值,直到达到一个WHEEL_DELTA(因此你达到与给定delta的旋转相同的响应),或者滚动部分行以响应更频繁的消息。你可以选择你的滚动精度并累计delta值直到达到WHEEL_DELTA。
重载这个成员函数以提供你自己的鼠标滚轮滚动特性。
注意 OnMouseWheel为Windows NT 4.0处理消息。对于Windows 95或Windows NT 3.51 的消息处理,应使用OnRegisteredMouseWheel。

请参阅:mouse_event