参数hMenu指定要删除的菜单句柄,调用如: lxn=GetSystemMenu(hwnd,false) DestroyMenu lxn
---------------------------------------- 取得指定菜单所包含菜单项数:GetMenuItemCount函数 声明:
Declare Function GetMenuItemCount Lib \参数简单:hMenu指定1个菜单句柄。 函数返回值为该菜单下包含的子菜单项数。 调用如:
s = GetMenuItemCount(GetSubMenu(GetMenu(form1.hwnd),0)) Print s
上例返回总句柄下第一个子菜单\文件\菜单下包含的子菜单项数。如为7。 --------------------------------------------------- 取得指定菜单下某子菜单项的命令ID号:GetMenuItemID
该函数返回1个菜单下指定位置的1个子菜单项的菜单ID号。如果指定的子菜单项是一分隔符,则函数返回值为0,声明:
Declare Function GetMenuItemID Lib \As Long
参数:hMenu--父菜单句柄。
nPos--子菜单项在父菜单中的位置,第1个子菜单项编号为0。 ----------------------------------------- 改变菜单项函数:ModifyMenuA函数 声明:
Declare Function ModifyMenuA Lib \nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) as long 参数:hMenu--欲改变的菜单的上级父菜单句柄。
nPosition--欲改变的子菜单项的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的子菜单项的命令ID号。如设置的是MF_BYPOSITION,这个参数就代表欲改变菜单项在上级父菜单中的位置(第一个菜单项的位置为零) wFlags--一系列常数标志的组合。详见菜单常数标志表
wIDNewItem--指定欲改变菜单项的新命令ID号。如在wFlags参数中指定MF_POPUP,就应是一个弹出式菜单的句柄。
lpString--如在wFlags参数中指定了MF_STRING标志,就代表欲设置到菜单项的字符串。如设置的是MF_BITMAP,就代表一个Long变量,其中包含了一个位图句柄。如设置的是MF_OWNERDRAW,那么这个值就会包括到DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中,并由windows在菜单项需要重画的时候发出
注:wFlags参数的下述组合形式是不允许的:MF_BYCOMMAND和MF_BYPOSITION;MF_CHECKED和MF_UNCHECKED;MF_MENUBARBREAK和MF_MENUBREAK;MF_DISABLED,MF_ENABLED和MF_GRAYED;MF_BITMAP,MF_STRING,MF_OWNERDRAW和MF_SEPARATOR 菜单常数标志表:
MF_BITMAP 菜单项是一幅位图。一旦设入菜单,这幅位图就绝对不能删除。所以不应该使用由vb的image属性返回的值
MF_BYCOMMAND 菜单项由菜单的命令ID指定
MF_BYPOSITION 菜单项由其在父菜单中的位置决定。零代表父菜单中的第一个子菜单项 MF_CHECKED 检查指定的菜单项。不能与vb的checked属性兼容 MF_DISABLED 禁止指定的菜单项。不与vb的enabled属性兼容 MF_ENABLED 允许指定的菜单项。不与vb的enabled属性兼容
MF_GRAYED 禁止指定的菜单项,并用浅灰色描述它。不与vb的