右键弹出菜单 鼠标点击了程序其它位置?

sdudubing 2013-11-25 05:58:37
大家好,问个事件处理的问题,在程序中使用下面代码完成了右键点击事件:

if (msg.LParam=WM_RBUTTONUP)then //右键单击图标
begin
getcursorpos(p);
popupmenu1.Popup(p.X,p.y);
end;


这样点击程序右下角的图标,可以弹出一个菜单。
目前存在一个问题是,我如果不是点击菜单中的选项,二是点击桌面其它位置的话,程序的右键菜单不能消失,请问如何能做到如果弹出右键菜单后,我不是点击菜单中的选项(点了桌面其他位置),让右键菜单消失,该如何实现?
...全文
216 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-12-01
  • 打赏
  • 举报
回复
弹出菜单后加一行语句 setforgroundwindow(application.handle);
eclipsewangping 2013-11-30
  • 打赏
  • 举报
回复
clipcursor
sololie 2013-11-25
  • 打赏
  • 举报
回复
当然得给popmenu1添加个菜单项
sololie 2013-11-25
  • 打赏
  • 举报
回复
你自己新建个空项目,加个popupmenu控件,什么都不用设置,直接form1.popupmenu:=popmenu1; 试试就知道了
sololie 2013-11-25
  • 打赏
  • 举报
回复
就是程序外的地方也是一样的,popupmenu一样会关闭,我试过了
sdudubing 2013-11-25
  • 打赏
  • 举报
回复
引用 4 楼 sololie 的回复:
form1.popupmenu:=popupmenu1; // 在属性面板中设置也行 popupmenu1.trackbutton:=tbRightButton; // 就是右键弹出,根本不需要倒腾什么WM_RBUTTONUP消息之类的 然后啥都不用管了,什么捕获鼠标坐标都是多余的,菜单弹出后,点击其他菜单之外的其他地方也会自动关闭popupmenu
点击桌面其它位置,指得是该程序外的其它位置。。。
sdudubing 2013-11-25
  • 打赏
  • 举报
回复
引用 5 楼 sololie 的回复:
你不就是想菜单弹出后,点击菜单之外的地方让菜单能自动关闭嘛 这些本来就是popupmenu控件自动能完成的,你只要把popupmenu控件指定给form的popupmenu属性就得,啥都不用管
我这右键点击是在任务栏中完成的,不是在程序主界面中做的,这是不是有些区别?
sdudubing 2013-11-25
  • 打赏
  • 举报
回复
引用 5 楼 sololie 的回复:
你不就是想菜单弹出后,点击菜单之外的地方让菜单能自动关闭嘛 这些本来就是popupmenu控件自动能完成的,你只要把popupmenu控件指定给form的popupmenu属性就得,啥都不用管
没弄成功啊
sololie 2013-11-25
  • 打赏
  • 举报
回复
你不就是想菜单弹出后,点击菜单之外的地方让菜单能自动关闭嘛 这些本来就是popupmenu控件自动能完成的,你只要把popupmenu控件指定给form的popupmenu属性就得,啥都不用管
sololie 2013-11-25
  • 打赏
  • 举报
回复
form1.popupmenu:=popupmenu1; // 在属性面板中设置也行 popupmenu1.trackbutton:=tbRightButton; // 就是右键弹出,根本不需要倒腾什么WM_RBUTTONUP消息之类的 然后啥都不用管了,什么捕获鼠标坐标都是多余的,菜单弹出后,点击其他菜单之外的其他地方也会自动关闭popupmenu
sdudubing 2013-11-25
  • 打赏
  • 举报
回复
引用 2 楼 sololie 的回复:
处理啥消息啊,搞那么复杂干嘛 窗体或控件都提供有PopupMenu属性,把popupmenu1指定给form或者控件的Popupmenu属性就可以了,什么弹出消息都自动处理
大神,没仔细看看图片啊,帮看下该怎么办啊?
sololie 2013-11-25
  • 打赏
  • 举报
回复
处理啥消息啊,搞那么复杂干嘛 窗体或控件都提供有PopupMenu属性,把popupmenu1指定给form或者控件的Popupmenu属性就可以了,什么弹出消息都自动处理
sdudubing 2013-11-25
  • 打赏
  • 举报
回复
目前效果:
http://img.blog.csdn.net/20131125180003796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2R1ZHViaW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast http://img.blog.csdn.net/20131125180315609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2R1ZHViaW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧