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