WINCE的MFC中处理鼠标滚轮消息

本文介绍了在WINCE环境下,使用eVC4的MFC处理鼠标滚轮消息所遇到的问题及解决方法。由于eVC4的MFC库中取消了对WM_MOUSEWHEEL的支持,通过修改消息映射和自定义窗口过程函数,成功实现了在MFC应用中处理滚轮消息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于如何用eVC4的MFC来处理鼠标滚轮的消息,在网上搜了很久,QQ群里问过了很多人,始终解决不了,有朋友说WINCE中不能处理滚轮消息,因为移动设备不接鼠标,但自己接上一个鼠标,在OS的文件夹处转动滚轮,的确是可以让文件滚动的,意思是WINCE的确可以处理滚轮消息,

后来我终于用基础的知识,层层深入地解决了这个问题.原理原来是很简单的.

 

首先,如果像PC机的MFC那样,正常给CWnd增加消息处理WM_MOUSEWHEEL的话,编译首先会报错说ON_WM_MOUSEWHEEL undeclared identifier,原因是eVC里的MFC的afxmsg_.h这样定义的.在最后,多了一段
#if defined(_WIN32_WCE)
#undef ON_WM_MOUSEWHEEL  当然该文件还取消了很多其他消息的定义.

这个是报错的原因,BEGIN_MESSAGE_MAP 与 END_MESSAGE_MAP 之间的 ON_WM_MOUSEWHEEL() 编译器看不懂.

 

头文件中定义是
#define ON_WM_MOUSEWHEEL() /
 { WM_MOUSEWHEEL, 0, 0, 0, AfxSig_bwsp, /
  (AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(UINT, short, CPoint))&OnMouseWheel },

所以一开始我尝试把 ON_WM_MOUSEWHEEL() 硬换成下面的一句,写在MESSAGE_MAP宏的中间.
{ WM_MOUSEWHEEL, 0, 0, 0, AfxSig_bwsp,(AFX_PMSG)(AFX_PMSGW)(BOOL (AFX_MSG_CALL CWnd::*)(UINT, short, CPoint))&OnMouseWheel },

 

再把MFC自动生成的OnMouseWheel函数里面的 return CDialog::OnMouseWheel(nFlag

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值