求助MFC中鼠标滚轮事件的实现

求助MFC中鼠标滚轮事件的实现,第1张

MFC鼠标滚轮消息WM_MOUSEWHEEL

使用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++技术内幕》


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11763997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存