使用WM_MOUSEWHEEL
需要把CWnd设定为Focus
ON_WM_MOUSEWHEEL( )
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轴坐标。这些坐标通常是相对于窗口的左上角的。
没用C写过,要用C++.当 消息 WM_MOUSEWHEEL 发生时,滚轮转动。
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_MOUSEWHEEL
WPARAM wParam, // key indicator and wheel rotation
LPARAM lParam// horizontal and vertical position
)
鼠标光标位置 是 x,y .
滚轮位置 实际上是 z. 顺时针还是逆时针 从转动前后位置判断。
zDelta = GET_WHEEL_DELTA_WPARAM(wParam) // 滚轮转动值
MFC中,窗口的滚动条是“自动”出现的,而不必自己添加。 但前提是您要选用哪种CView的继承类。 您要选用CScollView,那么,在InitialUpdate函数中,就可以设置窗口的大小。 那么,运行的时候,如果窗口的尺寸小于当初的设置,那么滚动条就自动出现了。 建议:认真看看《Visual C++技术内幕》欢迎分享,转载请注明来源:内存溢出
评论列表(0条)