ModifyMenu

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