大家可能都会用vb编写菜单程序,vb中有菜单编辑器可以轻松地编写命令按钮菜单,但大家可能对图形菜单的制作不太了解(如下图)。他可能在vc中编写比较容易。要在vb中就要引用API编写。下面就给大家介绍一下编写过程。

先介绍一下菜单的基本知识,对vb而言每一个菜单命令或子菜单,都算是一个菜单对象,但对WINDOWS而言,会以一个hMenu(菜单句柄)代表整个菜单,而每一个子菜单则以一个hSubMenu(子菜单句柄)来代表,但每一个菜单命令(MenuItem)则不再给予handle(句柄),而是以Menu
ID代表。
为获得某一个Form的hMenu,我们必须调用GetMenu
API函数:
Declare Function GetMenu Lib "user32" (ByVal
hwnd As Long) As Long
参数
HWnd:某一个含有菜单窗口hWnd。
返回值 若该菜单含有菜单,则返回hMenu,否则返回0。
调用 Dim hMenu As Long
hMenu = GetMenu(Me.hwnd)
`获取窗口句柄
接下来要取得菜单的hSubMenu,则是调用GetSubMenu
API函数:
Declare Function GetSubMenu Lib "user32" (ByVal hMenu As
Long, ByVal nPos As Long) As Long
参数
hMenu:传入hMenu 。
npos:欲取得subMenu的位置,subMenu的位置从0算起。
返回值
不等于0,表示hSubMenu: =,表示失败。
|