CMenu::GetMenuState
Devuelve el estado del elemento de menú especificado o el número de elementos de un menú emergente.
UINT GetMenuState(
UINT nID,
UINT nFlags
) const;
Parámetros
nID
Especifica el identificador de elemento de menú, determinado por nFlags.nFlags
especifica la naturaleza de nID. Puede ser uno de los siguientes valores:MF_BYCOMMAND especifica que el parámetro proporciona el id. del elemento de menú existente. Activado de forma predeterminada.
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.
Valor devuelto
el valor 0xFFFFFFFF si no existe el elemento especificado. Si el nId identifica un menú emergente, byte de orden superior contiene el número de elementos del menú emergente y byte de orden inferior contiene marcadores de menú asociado al elemento emergente. Si no el valor devuelto es una máscara (booleana OR) de los valores de la siguiente lista (esta máscara describe el estado del elemento de menú que el nId identifica):
MF_CHECKED Acts como alternancia con MF_UNCHECKED para colocar la marca de verificación predeterminada junto al elemento. Cuando se muestran los mapas de bits de la marca de verificación de fuentes de la aplicación (vea la función miembro de SetMenuItemBitmaps ), “marca de verificación en” mapa de bits.
MF_DISABLED deshabilita el elemento de menú para no pueda seleccionar pero no lo atenuado.
MF_ENABLED habilita el elemento de menú para poder seleccionarlo y las restauraciones él de su estado atenuada. Observe que el valor de esta constante es 0; una aplicación no debe probar en 0 para el error al utilizar este valor.
MF_GRAYED deshabilita el elemento de menú para no pueda seleccionar y lo atenuado.
MF_MENUBARBREAK coloca el elemento en una nueva línea en menús estáticos o en una nueva columna en menús emergentes. La nueva columna del elemento emergente se independiente de la columna antigua por una línea de división vertical.
MF_MENUBREAK coloca el elemento en una nueva línea en menús estáticos o en una nueva columna en menús emergentes. No se coloca ninguna línea de división entre las columnas.
MF_SEPARATOR dibuja una línea de división horizontal. Sólo se puede utilizar en un menú emergente. Esta línea no puede estar atenuada, deshabilitado, o resaltado. se omiten otros parámetros.
MF_UNCHECKED Acts como alternancia con MF_CHECKED para quitar una marca de verificación junto al elemento. Cuando se muestran los mapas de bits de la marca de verificación de fuentes de la aplicación (vea la función miembro de SetMenuItemBitmaps ), “marca de verificación” del mapa de bits. Observe que el valor de esta constante es 0; una aplicación no debe probar en 0 para el error al utilizar este valor.
Ejemplo
// CMainFrame::OnToggleTestMenuState() is a menu command handler for
// "Toggle State" menu item (whose resource id is ID_MENU_TOGGLESTATE).
// It toggles the checked or unchecked state of the "Toggle State" menu item.
// CMainFrame is a CFrameWnd-derived class.
void CMainFrame::OnToggleTestMenuState()
{
// Get the popup menu which contains the "Toggle State" menu item.
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(4);
// Check the state of the "Toggle State" menu item. Check the menu item
// if it is currently unchecked. Otherwise, uncheck the menu item
// if it is not currently checked.
UINT state = submenu->GetMenuState(ID_MENU_TOGGLESTATE, MF_BYCOMMAND);
ASSERT(state != 0xFFFFFFFF);
if (state & MF_CHECKED)
submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_UNCHECKED | MF_BYCOMMAND);
else
submenu->CheckMenuItem(ID_MENU_TOGGLESTATE, MF_CHECKED | MF_BYCOMMAND);
}
Requisitos
encabezado: afxwin.h