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里這個函數(shù)做出的許多改變都會有效的執(zhí)行,但不能由vb菜單對象反映出來 |
|
返回值 |
|
Long,非零表示成功,零表示失敗。會設置GetLastError |
|
參數(shù)表 |
|
參數(shù) |
類型及說明 |
hMenu |
Long,菜單句柄 |
nPosition |
Long,欲改變的菜單條目的標識符。如在wFlags參數(shù)中指定了MF_BYCOMMAND,這個參數(shù)就代表欲改變的菜單條目的命令I(lǐng)D。如設置的是MF_BYPOSITION,這個參數(shù)就代表菜單條目在菜單中的位置(第一個條目的位置為零) |
wFlags |
Long,一系列常數(shù)標志的組合。詳見菜單常數(shù)標志表 |
wIDNewItem |
Long,指定菜單條目的新命令I(lǐng)D。如在wFlags參數(shù)中指定了MF_POPUP標志,就應是一個彈出式菜單的句柄 |
lpString |
String或Long,如在wFlags參數(shù)中指定了MF_STRING標志,就代表欲設置到菜單的字串。如設置的是MF_BITMAP,就代表一個Long變量,其中包含了一個位圖句柄。如設置的是MF_OWNERDRAW,那么這個值就會包括到DRAWITEMSTRUCT和MEASUREITEMSTRUCT結(jié)構(gòu)中,并由windows在條目需要重畫的時候發(fā)出 |
注解 |
|
標志的下述組合形式是不允許的: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 |
菜單條目由菜單的命令I(lǐng)D指定 |
MF_BYPOSITION |
菜單條目由條目在菜單中的位置決定。零代表菜單中的第一個條目 |
MF_CHECKED |
檢查指定的菜單條目。不能與vb的checked屬性兼容 |
MF_DISABLED |
禁止指定的菜單條目。不與vb的enabled屬性兼容 |
MF_ENABLED |
允許指定的菜單條目。不與vb的enabled屬性兼容 |
MF_GRAYED |
禁止指定的菜單條目,并用淺灰色描述它。不與vb的enabled屬性兼容 |
MF_MENUBARBREAK |
在彈出式菜單中,將指定的條目放置于一個新列,并用一條垂直線分隔不同的列 |
MF_MENUBREAK |
在彈出式菜單中,將指定的條目放置于一個新列。在頂級菜單中,將條目放置到一個新行 |
MF_OWNERDRAW |
創(chuàng)建一個物主繪圖菜單(由您設計的程序負責描繪每個菜單條目) |
MF_POPUP |
將一個彈出式菜單置于指定的條目??捎糜趧?chuàng)建子菜單及彈出式菜單 |
MF_SEPARATOR |
在指定的條目處顯示一條分隔線 |
MF_STRING |
在指定的條目處放置一個字串。不與vb的caption屬性兼容 |
MF_UNCHECKED |
檢查指定的條目。不能與vb的checked屬性兼容 |