共用方式為


CMenu::ModifyMenu

變更現有的功能表項目 nPosition所指定的位置。

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

參數

  • nPosition
    指定要變更的功能表項目。 nFlags 參數可用來透過下列方式說明 nPosition :

    nFlags

    nPosition 的說明

    MF_BYCOMMAND

    指定參數指定現有的功能表項目的命令 ID。 如果 MF_BYCOMMANDMF_BYPOSITION 未設定,這是預設值。

    MF_BYPOSITION

    指定參數重新命名現有的功能表項目的位置。 第一個項目在位置 0。

  • nFlags
    指定 nPosition 如何解譯並提供要進行之變更的資訊與功能表項目。 如需可以設定旗標的清單,請參閱 AppendMenu 成員函式。

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

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

    nFlags

    lpszNewItem 的說明

    MF_OWNERDRAW

    包含應用程式可以使用維護其他資料與功能表項目中應用程式所提供的 32 位元值。 在處理 MF_MEASUREITEMMF_DRAWITEM時,這個值為 32 位元應用程式可使用的。

    MF_STRING

    包含長指標 null 結尾字串或為 CString

    MF_SEPARATOR

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

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

傳回值

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

備註

應用程式會藉由將值指定功能表項目的新狀態。 nFlags。 如果此函式取代快顯功能表與功能表項目,它會毀棄舊有的快顯功能表並釋放快顯功能表使用的記憶體。

當 nIDNewItem 指定快顯功能表時,它會變成控制項對於其插入的功能表。 如果終結該功能表,也會終結插入的功能表。 要從 CMenu 物件中斷連接已插入的功能表避免衝突。

當在 視窗變更的功能表 ( 視窗是否已經顯示),應用程式應該呼叫 CWnd::DrawMenuBar。 若要變更現有的功能表項目屬性,它是快速使用 CheckMenuItemEnableMenuItem 成員函式。

範例

CMenu::InsertMenu。請參閱範例。

需求

Header: afxwin.h

請參閱

參考

CMenu 類別

階層架構圖

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::CheckMenuItem

CWnd::DrawMenuBar

CMenu::EnableMenuItem

CMenu::SetMenuItemBitmaps

CMenu::Detach

ModifyMenu