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屬性相容 |