Compartir a través de


CMenu::ModifyMenu

cambia un elemento de menú existente en la posición especificada por 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  
);

Parámetros

  • nPosition
    Especifica el elemento de menú que se va a cambiar. El parámetro de nFlags se puede utilizar para interpretar nPosition de las maneras siguientes:

    nFlags

    Interpretación de nPosition

    MF_BYCOMMAND

    Especifica que el parámetro proporciona el identificador del elemento de menú existente. Éste es el valor predeterminado si no se establece MF_BYCOMMAND ni MF_BYPOSITION .

    MF_BYPOSITION

    Especifica que el parámetro proporciona la posición del elemento de menú existente. el primer elemento está en la posición 0.

  • nFlags
    Especifica cómo se interpreta nPosition y proporciona información sobre los cambios que se van al elemento de menú. Para obtener una lista de marcas que se pueden establecer, vea la función miembro de AppendMenu trabajar.

  • nIDNewItem
    Especifica el identificador del elemento de menú modificado o, si nFlags se establece en MF_POPUP, el identificador de menú (HMENU) de un menú emergente. Se omite el parámetro de nIDNewItem (no necesario) si nFlags se establece en MF_SEPARATOR.

  • lpszNewItem
    Especifica el contenido del nuevo elemento de menú. El parámetro de nFlags se puede utilizar para interpretar lpszNewItem de las maneras siguientes:

    nFlags

    Interpretación de lpszNewItem

    MF_OWNERDRAW

    Contiene un valor de 32 bits aplicación-proporcionado que la aplicación pueda utilizar para mantener los datos adicionales asociados con el elemento de menú. Este valor de 32 bits está disponible para la aplicación cuando procesa MF_MEASUREITEM y MF_DRAWITEM.

    MF_STRING

    Contiene un puntero largo en una cadena terminada en null o a CString.

    MF_SEPARATOR

    Se omite el parámetro de lpszNewItem (no necesario).

  • pBmp
    Señala a un objeto de CBitmap que se utilizará como el elemento de menú.

Valor devuelto

Distinto de cero si la función es correcta; si no 0.

Comentarios

La aplicación especifica el nuevo estado del elemento de menú estableciendo valores en nFlags. Si esta función reemplaza un menú emergente asociado al elemento de menú, destruye el antiguo popup y libera la memoria utilizada por el menú emergente.

Cuando nIDNewItem especifica un menú emergente, se convierte en parte del menú en el que se inserta. Si se destruye ese menú, el menú insertado también se destruirá. Un menú insertado se debe desasociar de un objeto de CMenu para evitar conflictos.

Siempre que se cambie un menú que residen en una ventana (si la ventana se muestra), la aplicación debe llamar a CWnd::DrawMenuBar. para cambiar los atributos de elementos de menú existentes, es mucho más rápida utilizar CheckMenuItem y el miembro de EnableMenuItem funciona.

Ejemplo

Vea el ejemplo para CMenu:: InsertMenu.

Requisitos

encabezado: afxwin.h

Vea también

Referencia

CMenu Class

Gráfico de jerarquías

CMenu::AppendMenu

CMenu::InsertMenu

CMenu::CheckMenuItem

CWnd::DrawMenuBar

CMenu::EnableMenuItem

CMenu::SetMenuItemBitmaps

CMenu::Detach

ModifyMenu