首页
社区
课程
招聘
[旧帖] [求助]如何在主窗口中捕获WM_MOUSEMOVE消息 0.00雪花
发表于: 2012-5-1 16:00 1811

[旧帖] [求助]如何在主窗口中捕获WM_MOUSEMOVE消息 0.00雪花

2012-5-1 16:00
1811
写了一个简单的Win32窗口程序,然后把客户区填满RichEdit后,鼠标在客户区(RichEdit区域)移动的时候主窗口的窗口过程捕获不到“WM_MOUSEMOVE”消息,何解?求指点~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 110
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
本来想着消息和线程有关的,应该能捕捉到这个事件。自己写了一个对话框窗口试了下,却和楼主说的情况一致。用spy++看了下,当在子窗口上移动鼠标时,主窗口可以接收到WM_SETCURSOR消息。楼主可以先用这个WM_SETCURSOR+GetCursorPos凑活用。想到好法子别忘回来说一下。
2012-5-1 23:11
0
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可以窗口子类化:拿到RichEdit的窗口过程函数,替换为一个自定义的窗口过程函数,在自定义的窗口过程里面拦截自己感兴趣的消息,不感兴趣的再交还给原RichEdit的窗口过程函数来处理。
具体还没试,刚查到的,网上相关资料好像也比较多。
2012-5-2 16:35
0
雪    币: 446
活跃值: (186)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
4
既然被RichEdit填满了,就只有RichEdit能收到WM_MOUSEMOVE,主窗口是收不到的,楼主应该子类化RichEdit控件,然后在消息处理过程中判断是否是WM_MOUSEMOVE,是的话就调用主窗口的消息处理
2012-5-2 16:47
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在RichEdit消息处理函数中得到该消息的时候SendMessage过去行不?
2012-5-3 15:33
0
雪    币: 25
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果能在RichEdit消息处理里面添加代码,那样直接把处理WM_MOUSEMOVE消息的代码写进去好了,那就不用子类化,也没必要SendMessage到别的地方处理了。但是应该没法写进去吧。。。
你有什么好办法么?
2012-5-4 09:26
0
游客
登录 | 注册 方可回帖
返回
//