Menu菜单你弄懂了吗?我终于弄懂了!

最近几天在写一个Pic看图的Gui控件,想给这个Gui加上右键菜单,稀里糊涂的研究了一天才弄明白,现在分享一下个人经验。

1、大家都应该知道Gui的右键动作是【GuiContextMenu:】这个标签,如果指定了Gui的Name是【View】,那么则为【ViewGuiContextMenu:】,即前面加上Gui的Name前缀

2、可以先给这个右键标签写一个Msgbox,运行一下在Gui界面点击右键看下

ViewGuiContextMenu:
    MsgBox 你好
    return

3、如果有弹出Msgbox,那就说明这个标签是正确的

4、那么接下来,你应该也会像我一样,认为在这个右键标签里面添加Menu菜单就行了。就像下面一样:

ViewGuiContextMenu:
    Menu, RButtonMenu,add, 开始播放 , SendPlay , 1&
    Menu, RButtonMenu,add
    Menu, RButtonMenu,add, 打开文件路径, 打开文件路径, 2&
    Menu, RButtonMenu,add, 回到上一张, Pic_Prev, 3&
    Menu, RButtonMenu,add, 自定格式, 自定格式Button
    Menu, RButtonMenu,add
    Menu, RButtonMenu,add, 设置, 托盘-打开设置
    Menu, RButtonMenu,add, 关于, 托盘-About
    Menu, RButtonMenu,add, 退出, Exit
    Menu, RButtonMenu, Show
    return

5、这样想就错了,因为没有在开头做销毁的命令,所以每次点击右键都会重复做Add添加菜单的动作,就像下面的图片一样:

Menu菜单你弄懂了吗?我终于弄懂了!

6、知道原因,解决起来就简单了,在这个绘制Menu前面加上一个销毁动作就行了。可是Menu并没有像Gui一样的Destroy销毁指令,所以还需要另外想路子去解决。

7、说那么多其实还是想把造成这样的原因说明白,这样才能养成好思路去解决问题,我也不扯那么多了,直接说正确的步骤:

1、写一个新的标签来执行绘制Menu
2、右键动作标签只需要有一个Show命令
3、回到显示这个Gui的段落,用gosub执行绘制Menu的命令

8、实在没弄明白可以参考以下代码:

 

 

给TA捐赠
共{{data.count}}人
人已捐赠
教程

节省你的时间,用AHK实现随机打开文件

2021-8-20 21:43:20

函数教程

【类】深入理解进制及其转换,AutoHotkey进制转换(二进制 十进制 十六进制)函数,AutoHotkey v2.0+

2021-9-15 21:13:29

5 条回复 A文章作者 M管理员
  1. maxs

    学习了2

  2. 望山观海

    还是建议把Gosub菜单放在代码一开头的执行段,这样能避免Gui多次开启导致的重复add menu

  3. 啊牧

    学习一下!

  4. ccc

    整个分享下呗哈哈

  5. zt7456

    学习一下!

个人中心
购物车
优惠劵
有新私信 私信列表
搜索