2 wllnihaoniu wllnihaoniu 于 2016.01.15 13:20 提问

关于鼠标滚轮消息处理函数
   **OnMouseWheel(UINT  nFlags, short zDelta,Cpoint point) 。在windows程序设计这本书中说,zDelta等于WHEEL_DELTA,意味着滚轮向前旋转一个增量或者是槽口,  如果滚轮向前滚动了5个槽口,则窗口将接收到5个WM_MOUSEWHEEL消息,每个消息都有一个Delta值为WHEEL_DELTA,按这样理解zDelta参数不就是一个常数了?那么msdn上的这句话怎么理解,以下为原话:The zDelta value is expressed in multiples or divisions of WHEEL_DELTA, which is 120.**

2个回答

91program
91program   Ds   Rxr 2016.01.15 15:15
已采纳

我是这样理解的:指示旋转的距离,表示为 WHEEL_DELTA 的倍数与方向。
值小于零指示反向旋转(朝向用户),值大于零指示向前旋转(远离用户)。用户可以通过更改设置在软件的鼠标滚轮反转此响应。

最后这个 120 的值,是 WHEEL_DELTA 。

wllnihaoniu
wllnihaoniu   2016.01.15 19:52

我试了几次得到的要么是120 要么是-120,怎么可以得到240,360等等。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MFC响应鼠标滚动的问题
MFC中经常用到鼠标的滚动来放缩图像,但OnMouseWheel经常进不去,于是想到用pretranslatemessage虚函数,判断 if(pMsg->message == WM_MOUSEWHEEL)进入鼠标滚动消息。但想用到OnMouseWheel中的zDelta和pt数据。 于是: short zDelta = (short)HIWORD(pMsg->wParam); short
MFC 子窗体响应鼠标滚轮消息
MFC 子窗体响应鼠标滚轮消息flyfish在父窗口重写 PreTranslateMessage BOOL CDlgX::PreTranslateMessage(MSG* pMsg) { if ( pMsg->message == WM_MOUSEWHEEL) { POINT pos; GetCursorPos(&pos); pMsg->
WINCE的MFC中处理鼠标滚轮消息
关于如何用eVC4的MFC来处理鼠标滚轮的消息,在网上搜了很久,QQ群里问过了很多人,始终解决不了,有朋友说WINCE中不能处理滚轮消息,因为移动设备不接鼠标,但自己接上一个鼠标,在OS的文件夹处转动滚轮,的确是可以让文件滚动的,意思是WINCE的确可以处理滚轮消息,后来我终于用基础的知识,层层深入地解决了这个问题.原理原来是很简单的. 首先,如果像PC机的MFC那样,正常给CWnd增
关于 WM_CAHR 和 OnChar 消息的解读
1.OnChar函数参数变量nChar是ASCII字符码,经过试验只有当按键所对应的ASCII码在0-127之间时才触发WM_CHAR消息,并进入OnChar消息函数,如:键入上下左右键,是不会进入OnChar函数的 2.理解扫描码、虚拟键码和ASCII字符码 [1]扫描码:键盘上每一个键对应一个扫描码,扫描码是由OEM生商制定的,不同厂商生产的键盘同样一个按键的扫描码都有可能出现不一致的情况
走进windows编程的世界-----消息处理函数(1)
Win32消息机制    过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序 继续执行,直至程序结束。    事件驱动:程序的执行顺序是无序的。某个时间点所执行的代码,是由外界 通知。由于我们无法决定程序执行顺序。所以代码的执行也是无序的。  Win32基本消息   WM_DESTROY:       窗口销毁时的消息,可以做退出或善后处理  WM_CREATE
走进windows编程的世界-----消息处理函数(2)
一 WM_PAINT消息 1 WM_PAINT的产生   由于窗口的互相覆盖等,产生需要绘制的区域,那么会产生WM_PAINT消息.   一般情况下,不直接发送WM_PAINT消息,通过API声明需要绘制区域,来产生WM_PAINT消息.   例如,可以使用InvalidateRect声明一个需要重新绘制的区域.    2 WM_PAINT的注意点    2.1 如果一个消息队列中,有多个WM_P
MFC默认的消息处理函数
 MFC默认的消息处理函数1.         打印相关(CView类中实现)       ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)       ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)       ON_COMMAND(ID_FILE_PRINT_PREVIEW,
消息处理函数
PostMessage不等待,直接把消息发出去   SendMessage发送并等待对方处理消息   TranslateMessage把虚拟艰消息翻译成字符消息   DispatchMessage派发消息 Tmessage---异步方式发送消息,不判断消息是否执行或被丢弃   Sendmessage---同步方式发送消息,等待消息被消息接收端接受后返回 
MFC中添加消息处理函数的步骤
如何在MFC中添加消息处理函数呢,不管是手动还是自动添加,大体上有下面三个步骤。 1、在类应用中添加消息处理函数的声明,以基于对话框的应用为例,在XXXDlg.h(XXX是工程的名字)文件中添加类似如下的声明: afx_msg  void  OnPaint(); //可以有参数也可以有返回值,这个视需求而定。当然,这里的OnPaint()是内置的绘图函数,没有返回值也没有参数。 2、在类的
为MFC菜单项添加消息处理函数
做进行单文档编程时,有时候需要对原有的菜单进行删除、修改或添加,因此,有些菜单项的消息处理函数需要我们自己添加,那么如何添加消息处理函数呢? 首先,打开类视图,选择CmainFrame类,此时在属性对话框中显示的是CmainFrame类的属性,属性标签里面有个小闪电型标签,表示事件,在事件中选择你需要添加消息处理函数的菜单的ID,点击加号,在COMMAND后面点击添加即可,如下图所示: