精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:菜单函数 第一页

主题:VB API:菜单函数 第一页
发信人: winsy(鹰派)
整理人: winsy(2003-03-12 08:56:12), 站内信件
AppendMenu 

VB声明 
Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long 
说明 
在指定的菜单里添加一个菜单项 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 
wFlags Long,参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数 
wIDNewItem Long,指定菜单条目的新命令ID。如果在wFlags参数中指定了MF_POPUP字段,那么这应该是指向一个弹出式菜单的句柄 
lpNewItem String(相应的vb声明见注解),如果在wFlags参数中指定了MF_STRING标志,这就代表在菜单中设置的字串。如设置了MF_BITMAP标志,这就代表一个Long型变量,其中包含了一个位图句柄。如设置了MF_OWNERDRAW,这个值就会包括在DRAWITEMSTRUCT和MEASUREITEMSTRUCT结构中,在条目需要重画的时候由windows发送出去 
注解 
Declare Function AppendMenu& Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String)
 

CheckMenuItem 

VB声明 
Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long 
说明 
复选或撤消复选指定的菜单条目 
返回值 
Long,如条目的前一个状态是“复选”,就返回MF_CHECKED,如果是“未复选”,就返回MF_UNCHECKED。如指定的菜单条目不存在就返回-1 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 
wIDCheckItem Long,欲复选或撤消复选的菜单条目的标识符。如果在wCheck中指定了MF_BYCOMMAND标志,这个参数就用于指定要改变的菜单条目的命令ID。如果设置了MF_BYPOSITION标志,这个参数就用于指定条目在菜单中的位置(第一个条目的位置是0) 
wCheck Long,参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数。针对这个函数,只能指定下述常数:MF_BYCOMMAND,MF_BYPOSITION,MF_CHECKED以及MF_UNCHECKED 
注解 
在vb里使用:由这个函数做出的改动可以正常发挥作用,但不会由vb菜单的checked属性反映出来
 

CheckMenuRadioItem 

VB声明 
Declare Function CheckMenuRadioItem Lib "user32" Alias "CheckMenuRadioItem" (ByVal hMenu As Long, ByVal un1 As Long, ByVal un2 As Long, ByVal un3 As Long, ByVal un4 As Long) As Long 
说明 
指定一个菜单条目被复选成“单选”项目。与单选钮相似,一个特定的组中只能有一个项目被选中。这个组别既可按位置定义,也可按菜单ID定义。复选的项目会显示一个圆形的样式复选符号(●),而不是一个标准的复选符号(√) 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 
un1 Long,组内第一个位置或菜单ID 
un2 Long,组内最后一个位置或菜单ID 
un3 Long,欲复选的位置或菜单ID 
un4 Long,下述标志之一 :如un1,un2,un3引用菜单条目的位置(第一个肯定在位置0处),就设为MF_BYPOSITION;如它们引用的是菜单ID,则设为MF_BYCOMMAND 
注解 
在vb里使用:由这个函数做出的改动可以正常发挥作用,但不会由vb菜单的checked属性反映出来
 

CreateMenu 

VB声明 
Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long 
说明 
创建新菜单 
返回值 
Long,如成功则返回新的顶级菜单的句柄;零意味着错误 
注解 
最开始创建时,菜单是空的。可用菜单api函数插入菜单条目。一旦菜单不再需要,记住用DestroyMenu将其删除
 

CreatePopupMenu 

VB声明 
Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long 
说明 
创建一个空的弹出式菜单。可用AppendMenu或InsertMenu函数在窗口中添加条目,或者为一个现成的菜单添加弹出式菜单,并在新建的菜单中添加条目 
返回值 
Long,如成功,返回一个菜单句柄;零意味着错误 
注解 
并不推荐用这个函数来创建备用的vb菜单,除非是为TrackPopupMenu函数生成菜单。这个窗口中使用的命令ID必须与现有vb菜单控件的ID相符。或者用一个子类处理控件进行管理
 

DeleteMenu 

VB声明 
Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long 
说明 
删除指定的菜单条目(在vb里使用:强烈建议用vb菜单的visible属性从菜单中删除条目。如使用这个函数,会造成指定菜单其他菜单条目的visible属性错误的影响菜单条目) 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 
nPosition Long,欲删除菜单条目的标识符。如在wFlags中设置了MF_BYCOMMAND标志,这个参数就代表要改变的菜单条目的命令ID。如设置了MF_BYPOSITION标志,这个参数就代表条目在菜单中的位置(头一个条目肯定是零) 
wFlags Long,MF_BYPOSITION或MF_BYCOMMAND,具体由nPosition参数决定 
注解 
如条目连接了一个弹出式菜单,就会清除弹出式菜单。用RemoveMenu函数清除一个弹出式菜单条目,同时不影响整个弹出式菜单
 

DestroyMenu 

VB声明 
Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long 
说明 
删除指定的菜单。如菜单属于另一个菜单的一部分,或直接分配给一个窗口,那么菜单会在窗口清除后被自动删除 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,欲删除菜单的句柄 
注解 
这个函数通常用于CreateMenu和CreatePopupMenu函数创建的菜单
 

DrawMenuBar 

VB声明 
Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long 
说明 
为指定的窗口重画菜单。用api函数改变一个窗口菜单的内容时,就要用到这个函数 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,要重画菜单栏的窗口的句柄 
注解 
在vb里很少有必要用到这个函数,因为不应该用api函数来改变一个窗口的顶级菜单栏
 

EnableMenuItem 

VB声明 
Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long 
说明 
允许或禁止指定的菜单条目(在vb里使用:由这个函数做出的改动可以正常发挥作用,但不会由vb菜单的enabled属性反映出来) 
返回值 
Long, 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 
wIDEnableItem Long,欲允许或禁止的一个菜单条目的标识符。如果在wEnable参数中设置了MF_BYCOMMAND标志,这个参数就代表欲改变菜单条目的命令ID。如设置的是MF_BYPOSITION,则这个参数代表菜单条目在菜单中的位置(第一个条目肯定是零) 
wEnable Long,参考ModifyMenu函数中的菜单常数标志定义表,其中列出了允许使用的所有常数。对于这个函数,只能指定下述常数:MF_BYCOMMAND,MF_BYPOSITION,MF_ENABLED,MF_DISABLED以及MF_GRAYED 
注解 
如指定的菜单条目依附了一个弹出式菜单,那么整个弹出式菜单都会受到影响
 

GetMenu 

VB声明 
Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long 
说明 
取得窗口中一个菜单的句柄 
返回值 
Long,依附于指定窗口的一个菜单的句柄(如果有菜单);否则返回零 
参数表 
参数 类型及说明 
hwnd Long,窗口句柄。对于vb,这应该是一个窗体句柄。注意可能不是子窗口的句柄 


GetMenuCheckMarkDimensions 

VB声明 
Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long 
说明 
返回一个菜单复选符的大小。参考SetMenuItemBitmaps以进一步了解如何使用这个函数 
返回值 
Long,高字(高16位)指定菜单复选符的高度,以像素为单位表示;低字代表宽度 


GetMenuContextHelpId 

VB声明 
Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long 
说明 
取得用SetMenuContextHelpId函数分配给一个菜单的帮助场景ID 
返回值 
Long,如果存在,就返回帮助场景ID;否则返回零 
参数表 
参数 类型及说明 
hMenu Long,菜单句柄 


GetMenuDefaultItem 

VB声明 
Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long 
说明 
允许我们判断菜单中的哪个条目是默认条目。这个条目相应的转换成双击菜单时执行的操作 
返回值 
Long,默认菜单条目的位置或标识符。如未发现默认条目,就返回-1 
参数表 
参数 类型及说明 
hMenu Long,菜单的句柄 
fByPos Long,如果为TRUE,表示接收条目在菜单中的位置;FALSE表示接收它的菜单ID 
gmdiFlags Long,下述标志之一: 
GMDI_GOINTOPOPUPS 如默认条目是弹出菜单,这个函数就会在其中搜索一个默认的菜单条目 
GMDI_USEDISABLED 指明自己在搜索过程中不想跳过被禁止的菜单条目 



GetMenuItemCount 

VB声明 
Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long 
说明 
返回菜单中条目(菜单项)的数量 
返回值 
Long,菜单中的条目数量;-1意味着出错。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,目标菜单的句柄 


GetMenuItemID 

VB声明 
Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long 
说明 
返回位于菜单中指定位置处的条目的菜单ID 
返回值 
Long,指定条目的菜单ID。如条目属于一个弹出式菜单,就返回-1;如指定的条目属于一个分隔符(比如一条分隔线)则返回0 
参数表 
参数 类型及说明 
hMenu Long,菜单的句柄 
nPos Long,条目在菜单中的位置。第一个条目的编号是0 


GetMenuItemInfo 

VB声明 
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long 
说明 
用一个MENUITEMINFO结构取得(接收)与一个菜单条目有关的特定信息 
返回值 
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError 
参数表 
参数 类型及说明 
hMenu Long,菜单的句柄 
un Long,菜单条目的菜单ID或位置 
b Boolean,如un指定的是条目位置,就为TRUE;如指定的是一个菜单ID,则为FALSE 
lpMenuItemInfo MENUITEMINFO,这个结构用于装载请求的信息 

[关闭][返回]