ModifyMenu,ModifyMenuBynum

VB声明
Declare Function ModifyMenu& Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) Declare Function ModifyMenuBynum& Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Long)
说明
改变菜单条目。在vb里这个函数做出的许多改变都会有效的执行，但不能由vb菜单对象反映出来
返回值
Long，非零表示成功，零表示失败。会设置GetLastError
参数表
参数 | 类型及说明
hMenu | Long，菜单句柄
nPosition | Long，欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND，这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION，这个参数就代表菜单条目在菜单中的位置（第一个条目的位置为零）
wFlags | Long，一系列常数标志的组合。详见菜单常数标志表
wIDNewItem | Long，指定菜单条目的新命令ID。如在wFlags参数中指定了MF_POPUP标志，就应是一个弹出式菜单的句柄
lpString | String或Long，如在wFlags参数中指定了MF_STRING标志，就代表欲设置到菜单的字串。如设置的是MF_BITMAP，就代表一个Long变量，其中包含了一个位图句柄。如设置的是MF_OWNERDRAW，那么这个值就会包括到DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中，并由windows在条目需要重画的时候发出
注解
标志的下述组合形式是不允许的：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的enabled属性兼容
MF_MENUBARBREAK | 在弹出式菜单中，将指定的条目放置于一个新列，并用一条垂直线分隔不同的列
MF_MENUBREAK | 在弹出式菜单中，将指定的条目放置于一个新列。在顶级菜单中，将条目放置到一个新行
MF_OWNERDRAW | 创建一个物主绘图菜单（由您设计的程序负责描绘每个菜单条目）
MF_POPUP | 将一个弹出式菜单置于指定的条目。可用于创建子菜单及弹出式菜单
MF_SEPARATOR | 在指定的条目处显示一条分隔线
MF_STRING | 在指定的条目处放置一个字串。不与vb的caption属性兼容
MF_UNCHECKED | 检查指定的条目。不能与vb的checked属性兼容

Top