Freigeben über


CMenu::ModifyMenu

Ändert ein vorhandenes Menüelement an der Position, die von nPosition angegeben wird.

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  
);

Parameter

  • nPosition
    Gibt das zu ändernde an Menüelement. Der nFlags-Parameter kann verwendet werden, um nPosition folgendermaßen zu interpretieren:

    nFlags

    Interpretation von nPosition

    MF_BYCOMMAND

    Gibt an, dass der Parameter der Befehls-ID des vorhandenen Menüelements gibt. Dies ist der Standardwert, wenn weder noch MF_BYCOMMANDMF_BYPOSITION festgelegt ist.

    MF_BYPOSITION

    Gibt an, dass der Parameter die Position des vorhandenen Menüelements gibt. Der erste Punkt befindet sich an Position 0.

  • nFlags
    Gibt an, wie nPosition interpretiert wird, und gibt Informationen über die Menüelement gemacht werden Änderungen. Eine Liste von Flags, die möglicherweise festgelegt werden, finden Sie die AppendMenu-Memberfunktion.

  • nIDNewItem
    Gibt entweder die Befehls-ID des geänderten Menüelements oder, wenn nFlags zu MF_POPUP festgelegt, das Menühandle (HMENU) eines Popupmenüs an. Der Parameter wird ignoriert nIDNewItem (nicht erforderlich) wenn nFlags zu MF_SEPARATOR festgelegt ist.

  • lpszNewItem
    Gibt den Inhalt des neuen Menüelements an. Der nFlags-Parameter kann verwendet werden, um lpszNewItem folgendermaßen zu interpretieren:

    nFlags

    Interpretation von lpszNewItem

    MF_OWNERDRAW

    Enthält einen von der Anwendung bereitgestellten 32-Bit-Wert, den die Anwendung verwenden kann, um die zusätzlichen Daten beizubehalten, die mit dem Menüelement zugeordnet werden. Dieser 32-Bit-Wert ist der Anwendung zur Verfügung, wenn er MF_MEASUREITEM und MF_DRAWITEM verarbeitet.

    MF_STRING

    Enthält einen langen Zeiger auf eine auf NULL endende Zeichenfolge oder zu CString.

    MF_SEPARATOR

    Der Parameter wird ignoriert lpszNewItem (nicht erforderlich).

  • pBmp
    Zeigt auf CBitmap ein Objekt, das als das Menüelement verwendet wird.

Rückgabewert

Ungleich 0 (null), wenn die Funktion erfolgreich; 0 andernfalls.

Hinweise

Die Anwendung gibt den neuen Zustand des Menüelements mit Werten in nFlags an. Wenn diese Funktion ein Popupmenü ersetzt, das mit dem Menüelement zugeordnet ist, zerstört sie das alte Popupmenü und gibt den Speicherplatz, der durch das Popupmenü verwendet wird.

Wenn nIDNewItem ein Popupmenü angibt, wird Teil des Menüs, in dem sie eingefügt wird. Wenn dieses Menü zerstört wird, wird das Menü außerdem eingefügte zerstört. Ein eingefügtes Menü sollte ein CMenu-Objekt getrennt werden, um Konflikte zu vermeiden.

Wenn ein Menü, das in einem Fenster befinden, geändert wird (ob das Fenster angezeigt wird), sollte die Anwendung CWnd::DrawMenuBar aufrufen. Um die Attribute von vorhandenen Menüelementen zu ändern, ist sie viel schneller die CheckMenuItem und EnableMenuItem-Memberfunktionen zu verwenden.

Beispiel

Im Beispiel für CMenu::InsertMenu.

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CMenu-Klasse

Hierarchiediagramm

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::CheckMenuItem

CWnd::DrawMenuBar

CMenu::EnableMenuItem

CMenu::SetMenuItemBitmaps

CMenu::Detach

ModifyMenu