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