CMenu::AppendMenu

將新的項目加入至功能表的尾端。

BOOL AppendMenu(
   UINT nFlags,
   UINT_PTR nIDNewItem = 0,
   LPCTSTR lpszNewItem = NULL 
);
BOOL AppendMenu(
   UINT nFlags,
   UINT_PTR nIDNewItem,
   const CBitmap* pBmp 
);

參數

  • nFlags
    在加入至功能表時,會指定與新功能表項目狀態資訊。 它包含在"備註"一節中的一或多個值。

  • nIDNewItem
    指定新的功能表項目的命令 ID,或者,如果 nFlags 設為 MF_POPUP,功能表控制代碼 ()HMENU快顯功能表。 nIDNewItem 參數已忽略 (不需要),如果 nFlags 設為 MF_SEPARATOR

  • lpszNewItem
    指定新的功能表項目的內容。 nFlags 參數是用來透過下列方式來解譯 lpszNewItem :

    nFlags

    lpszNewItem 的說明

    MF_OWNERDRAW

    包含應用程式可以使用維護其他資料與功能表項目中應用程式所提供的 32 位元值。 在處理 WM_MEASUREITEMWM_DRAWITEM 訊息時,這個值為 32 位元應用程式可使用的。 值在結構的 itemData 成員儲存提供給這些訊息。

    MF_STRING

    含有指向 null 結尾的字串。 這是預設解譯。

    MF_SEPARATOR

    lpszNewItem 參數已忽略 (不需要)。

  • pBmp
    要用來做為功能表項目的 CBitmap 點的物件。

傳回值

如果不是零,則函式成功,則為 0。

備註

應用程式可以藉由將值指定功能表項目的狀態。 nFlags。 當 nIDNewItem 指定快顯功能表時,它會變成它所附加的功能表。 如果終結該功能表,也會終結附加的功能表。 要從 CMenu 物件中斷連接已附加的功能表避免衝突。 請注意 MF_STRINGMF_OWNERDRAWAppendMenu點陣圖版本不正確。

下列清單說明 nFlags已設定的其他所有旗標:

  • MF_CHECKED 為具有 MF_UNCHECKED 的切換了項目旁邊放置預設核取記號。 當應用程式提供核取記號點陣圖 (請參閱 SetMenuItemBitmaps 成員函式),則」Bitmap 「的核取記號顯示。

  • MF_UNCHECKED 為具有 MF_CHECKED 的切換了項目旁邊的核取記號。 當應用程式提供核取記號點陣圖 (請參閱 SetMenuItemBitmaps 成員函式), 「核取記號」點陣圖會顯示。

  • MF_DISABLED 停用功能表項目,讓它不能選取,但不會呈現暗灰色。

  • MF_ENABLED 啟用功能表項目,讓它可以選取和還原它從其暗灰色的 (Dimmed) 狀態。

  • MF_GRAYED 停用功能表項目,讓它無法選取它並暗灰色。

  • MF_MENUBARBREAK 在新行上放置項目會以靜態功能表或新資料行在快顯功能表。 新的快顯功能表資料行從舊的資料行才會分隔垂直分隔線。

  • MF_MENUBREAK 在新行上放置項目會以靜態功能表或新資料行在快顯功能表。 分隔行。不會將資料行之間的間距。

  • MF_OWNERDRAW 指定項目是主控描繪項目。 在功能表中第一次顯示,擁有 功能表上的 視窗 WM_MEASUREITEM 收到訊息時,會擷取功能表項目的高度和寬度。 WM_DRAWITEM 訊息是傳送該,每當擁有者必須更新功能表項目的視覺外觀。 這個選項為最上層功能表項目是無效的。

  • MF_POPUP 指定功能表項目都有一個快顯功能表相關聯。 ID 參數指定控制代碼會與項目相關聯的快顯功能表。 這會將最上層快顯功能表或一個階層式快顯功能表並使用快顯功能表項目。

  • MF_SEPARATOR 繪製水平分隔線。 只能用於快顯功能表。 這一行不能為,停用或反白顯示。 其他參數會被忽略。

  • MF_STRING 指定功能表項目是字串。

互斥 (Mutually Exclusive),而且不可以同時使用下列群組清單旗標各個項目:

  • MF_DISABLEDMF_ENABLEDMF_GRAYED

  • MF_STRINGMF_OWNERDRAWMF_SEPARATOR和點陣圖版本

  • MF_MENUBARBREAKMF_MENUBREAK

  • MF_CHECKEDMF_UNCHECKED

當在 視窗變更的功能表 ( 視窗是否已經顯示),應用程式應該呼叫 CWnd::DrawMenuBar

範例

CMenu::CreateMenu。請參閱範例。

需求

Header: afxwin.h

請參閱

參考

CMenu 類別

階層架構圖

CWnd::DrawMenuBar

CMenu::InsertMenu

CMenu::RemoveMenu

CMenu::SetMenuItemBitmaps

CMenu::Detach

AppendMenu