VisualFreeBasic控件_PopupMenu 弹出菜单

2026-1-20 / 0 评论 / 54 阅读

主要用于一些控件右键点击,弹出一个菜单来。运行时,并不会显示菜单控件
和窗口菜单一样,点击菜单项目,来编辑菜单

弹出菜单

在需要弹出菜单中,写代码弹出菜单

PopupMenu1.PopupMenu 

还可以指定位置弹出菜单

PopupMenu1.PopupMenu(form1.hwnd,x,y)  

菜单事件

用户点击菜单,在菜单事件中处理

Sub Form1_PopupMenu1_WM_Command(hWndForm As hWnd,wID As ULong)

   Select Case wID
      Case Form1_PopupMenu1_Menu1 ' 新菜单0

      Case Form1_PopupMenu1_Menu2 ' 新菜单1

      Case Form1_PopupMenu1_Menu3 ' 新菜单2

      Case Form1_PopupMenu1_Menu4 ' 新菜单3

   End Select

End Sub

代码添加菜单

菜单项命令ID,每个项目都不同,不可重复

PopupMenu1.AddMenu(0, "菜单文字", 菜单项命令ID)

当需要给某个菜单项目增加子菜单

PopupMenu1.AddMenu(父菜单项命令ID, "菜单文字", 子菜单项命令ID)

然后在代码中使用

   菜单项命令ID = PopupMenu1.PopupMenu()
   Select Case 菜单项命令ID
      Case 100
      Case 101
   End Select

常用属性

   PopupMenu1.Enabled(Form1_PopupMenu1_Menu1 ) = True 
   PopupMenu1.Check(Form1_PopupMenu1_Menu1 ) = True

菜单快捷键

注:菜单快捷键只有在主窗口的菜单控件才生效,其它如 副窗口、从窗口 等不会生效。

控件在主窗口上(就是软件第一个启动的窗口)快捷键才有效果。
当主窗口在前台时候,按下快捷键,就会产生相关的菜单事件。主窗口不在前台,按快捷键是无效的,你需要全局快捷键,可以使用“快捷键”控件,VFB里有。
菜单快捷键和其它控件冲突
比方,edit控件,你菜单设置了 Ctrl+c ,那么控件中无法执行复制,而是产生菜单事件,你可以在菜单事件中判断,当前焦点的控件,是不是 edit控件,然后由你决定是发消息给 EDIT控件 处理还是什么的。

支持矢量图标
可以直接添加矢量图标

图标制作

使用 VisualFreeBasic 自带的 【矢量图标编辑器】 编辑一个,里面自带了很多图标,可以复制过来即可

评论一下?

OωO
取消