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属性兼容 |
Windows菜单函数 - ModifyMenu/ModifyMenuBynum
最新推荐文章于 2020-12-04 20:42:04 发布