社区
界面
帖子详情
关于TrackPopupMenuEx()
hhh_hao
2011-03-17 04:58:03
实现鼠标放在按钮上弹出一个菜单(TrackPopupMenuEx())的功能,
不过我发现当菜单弹出的时候虽然鼠标还在按钮的上方。但是这时按钮会收到WM_MOUSELEAVE消息,我是通过TrackMouseEvent函数来判断鼠标是否离开控件的, 有什么办法解决这个问题吗?
...全文
221
14
打赏
收藏
关于TrackPopupMenuEx()
实现鼠标放在按钮上弹出一个菜单(TrackPopupMenuEx())的功能, 不过我发现当菜单弹出的时候虽然鼠标还在按钮的上方。但是这时按钮会收到WM_MOUSELEAVE消息,我是通过TrackMouseEvent函数来判断鼠标是否离开控件的, 有什么办法解决这个问题吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hhh_hao
2011-03-18
打赏
举报
回复
[Quote=引用 13 楼 fishion 的回复:]
引用 6 楼 hhh_hao 的回复:
用了PtinRect的方法,
还有新问题,当菜单弹出之后,鼠标离开按钮时, 收不到WM_MOUSELEAVE消息
俺的方法里根本就没用到WM_MOUSELEAVE消息
[/Quote]
是所有的消息都没了
fishion
2011-03-18
打赏
举报
回复
[Quote=引用 6 楼 hhh_hao 的回复:]
用了PtinRect的方法,
还有新问题,当菜单弹出之后,鼠标离开按钮时, 收不到WM_MOUSELEAVE消息
[/Quote]
俺的方法里根本就没用到WM_MOUSELEAVE消息
论坛签名======================================================================
hhh_hao:你好!
截至 2011-03-17 16:58:03 前:
你已发帖 27 个, 未结贴
4
个;
结贴率为:
85.19%
当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html
如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖
如何给自己的回帖中也加上签名?
http://blog.csdn.net/q107770540/archive/2011/03/15/6250007.aspx
hhh_hao
2011-03-17
打赏
举报
回复
基本上来说呢 就是:
1.当鼠标停在Button上时 触发弹出menu的事件
2.当鼠标移动到另一个Button上时 弹出另一个menu
3.如果鼠标没有移动到新的Button上时 已弹出的menu不消失
有些类似于“开始”菜单的样子
我用TPopupMenu可以实现弹出的功能 但是当TPopupMenu弹出后 就无法再响应MouseMove这个事件了
高手请快出手~~
hhh_hao
2011-03-17
打赏
举报
回复
[Quote=引用 9 楼 xianglitian 的回复:]
你把鼠标移到按钮上没有任何动作就出菜单?
那不是tooltip的效果么
为什么这么做
[/Quote]
相当于主菜单弹子菜单的效果,这个有很多的吧
向立天
2011-03-17
打赏
举报
回复
你把鼠标移到按钮上没有任何动作就出菜单?
那不是tooltip的效果么
为什么这么做
hhh_hao
2011-03-17
打赏
举报
回复
[Quote=引用 7 楼 huangcheng90 的回复:]
引用 6 楼 hhh_hao 的回复:
用了PtinRect的方法,
还有新问题,当菜单弹出之后,鼠标离开按钮时, 收不到WM_MOUSELEAVE消息
你在PreTranslateMessage里面判断一下WM_MOUSEENTER之类的消息和窗口句柄,如果句柄是菜单就发送WM_MOUSELEAVE消息给按钮试试..
[/Quote]
这样的会没完没了的,太麻烦了吧,
Dreadnought
2011-03-17
打赏
举报
回复
[Quote=引用 6 楼 hhh_hao 的回复:]
用了PtinRect的方法,
还有新问题,当菜单弹出之后,鼠标离开按钮时, 收不到WM_MOUSELEAVE消息
[/Quote]
你在PreTranslateMessage里面判断一下WM_MOUSEENTER之类的消息和窗口句柄,如果句柄是菜单就发送WM_MOUSELEAVE消息给按钮试试..
hhh_hao
2011-03-17
打赏
举报
回复
用了PtinRect的方法,
还有新问题,当菜单弹出之后,鼠标离开按钮时, 收不到WM_MOUSELEAVE消息
Dreadnought
2011-03-17
打赏
举报
回复
[Quote=引用 4 楼 hhh_hao 的回复:]
有人说用hook能解决这个问题吗?
[/Quote]
还是判断PtinRect比较简单...
hhh_hao
2011-03-17
打赏
举报
回复
有人说用hook能解决这个问题吗?
Eleven
2011-03-17
打赏
举报
回复
判断一下当前GetCursorPos()的CPoint是否在按钮的区域内?CRect::PtInRect();
fishion
2011-03-17
打赏
举报
回复
弄个定时器,定时用GetCursorPos来得到鼠标的位置,用GetWindowRect得到控件的大小坐标,再用PtInRect来判断鼠标是否在控件在
shenyi0106
2011-03-17
打赏
举报
回复
菜单也是窗口,你窗口切换了,肯定是要受到离开消息的
有两个方法:
1.计算弹出坐标时,和鼠标间留一定的空隙(不知道是否可行,可以测试一下)
2.在收到鼠标离开消息时,判断一下窗口,如果是你的菜单,则不处理
易语言API右键菜单
易语言API右键菜单源码,API右键菜单,Create
PopupMenu
,AppendMenuA,
Trac
k
PopupMenu
Ex
,DestroyMenu
【首发】纯易代码实现弹出Windowszy管理器的右键菜单-易语言
对象不能去除菜单的Icon,所以必须自己设置了) ->
Trac
k
PopupMenu
Ex
弹出菜单 -> RunNumMethod (“DoIt”, )执行菜单命令 -> 结束一些图片: 注释已经加得很全了,注意:本代码是无法获得根目录(比如“C:\”)的...
最全的WinAPI手册
Trac
k
PopupMenu
Ex
155 AppendMenu 156 CheckMenultem 159 GetMenuCheckMarkDimensions 159 GetMenuState 160 GetMenuString 161 InsertMenu 161 ModifyMenu 163 第十三节 消息和消息总队列函数(Message and Message...
Windows API函数大全
Trac
k
PopupMenu
Ex
与
Trac
k
PopupMenu
相似,只是它提供了额外的功能 作者Blog:http://blog.csdn.net/daiguopeng/ 相关文章 用VC 6.0实现串行通信的三种方法 windows运行命令详解 Windows API函数大全四 Windows ...
API之网络函数---整理网络函数及功能
API之网络函数1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章