CMenu::AppendMenu
BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );
返回值:如果成功,則返回非零值,否則為0。
參數(shù):
nFlags | 指定了增加到菜單中的新菜單項狀態(tài)的有關信息。它包括說明中列出的一個或多個值。 |
nIDNewItem | 指定了新菜單項的命令ID號,或如果nFlags被設置為MF_POPUP,該參數(shù)指定彈出菜單的菜單句柄(HMENU)。如果nFlags被設置為MF_SEPARA-TOR,那么參數(shù)NewItem將被忽略。 |
lpszNewItem | lpszNewItem指定了新菜單項的內容。參數(shù)nFlags以下列方式解釋lpszNewItem: nFlags | lpszNewItem的解釋 | MF_OWNERDRAW | 包含一個應用支持的32 位值,應用可以用于維護與菜單項關聯(lián)的附加數(shù)據(jù)。當應用進行了WM_MEASUREITEM和WM_DRAWITEM,該32位值有效。這些信息存儲在提供這些消息的結構的itemData成員中 | MF_STRING | 包含一個指向以空字符終止的字符串的指針。這是它的缺省說明 | MF_SEPARATOR | 參數(shù)lpszNewItem被忽略 | |
pBmp | 指向將用作菜單項的CBitmap對象。 |
說明:
在菜單的末尾添加新項。該應用可以通過設置nFlags的值來指定菜單項的狀態(tài)。若nIDNewItem指定一個彈出菜單,那么它也將成為被添加菜單的一部分。假如菜單被銷毀,那么添加的菜單也將被銷毀。添加的菜單應當從CMenu 對象中分離出來,以避免產(chǎn)生沖突。要注意MF_STRING和MF_OWNERDRAW對于AppendMenu函數(shù)的位圖版本無效。
下面列出的是nFlags可以設置的值:
· | MF_CHECKED | 該值的行為如同使用MF_UNCHECKED來作為一個標記,用于替換項前的檢測標記。若應用支持檢測標記位圖(請參閱SetMenuItemBitmaps成員函數(shù)),那么將顯示“檢測標記打開”位圖。 |
· | MF_UNCHECKED | 該值的行為如同使用MF_CHECKED來作為一個標記,用于刪除項前的檢測標記。若應用支持檢測標記位圖(請參閱SetMenuItemBitmaps成員函數(shù)),那么將顯示“檢測標記關閉”位圖。 |
· | MF_DISABLED | 使菜單項無效以便它不能被選擇,但菜單項不變灰。 |
· | MF_ENABLED | 使菜單項有效以便它能夠被選擇,并從灰色狀態(tài)中恢復原樣。 |
· | MF_GRAYED | 使菜單項無效以便它不能被選擇,同時使菜單項變灰。 |
· | MF_MENUBARBREAK | 在靜態(tài)菜單里的新行中或彈出菜單的新列中放置菜單項。新的彈出菜單列與老的菜單列將由垂直分割線分開。 |
· | MF_MENUBREAK | 在靜態(tài)菜單里的新行中或彈出菜單的新列中放置菜單項。列與列之間沒有分割線。 |
· | MF_OWNERDRAW | 指定菜單項為一個擁有者描繪的項。當菜單首次顯示時,擁有該菜單的窗口將接收WM_MEASUREITEM消息,以獲取菜單項的高度與寬度。WM_DRAWITEM消息將使屬主窗口必須更新菜單項的可視界面。該選擇項對于頂層菜單項無效。 |
· | MF_POPUP | 指定菜單項有與之相關聯(lián)的彈出菜單。參數(shù)ID指定了與項相關聯(lián)的彈出菜單的句柄。它用于增加頂層彈出菜單項或用于增加彈出菜單項的下一級彈出菜單。 |
· | MF_SEPARATOR | 繪制一條水平的分割線。它僅僅能用于彈出菜單項。該線不能變灰、無效或高亮度顯示。其它的參數(shù)將被忽略。 |
· | MF_STRING | 指定菜單項為一個字符串。 |
下面列出的各組標志互相排斥,不能一起使用:
· | MF_DISABLED, MF_ENABLED,和 MF_GRAYED |
· | MF_STRING, MF_OWNERDRAW, MF_SEPARATOR和位圖版本。 |
· | MF_MENUBARBREAK和MF_MENUBREAK |
· | MF_CHECKED 和MF_UNCHECKED |
無論何時,當停留在窗口中的菜單發(fā)生變化時(不論窗口是否顯示),應用都將調用CWnd::DrawMenuBar函數(shù)。