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属性兼容 |