CMenu::GetMenuState
Retorna o status do item de menu especificado ou o número de itens em um menu pop-up.
UINT GetMenuState(
UINT nID,
UINT nFlags
) const;
Parâmetros
nID
Especifica a ID do item de menu, conforme determinado por nFlags.nFlags
Especifica a natureza da nID. Ele pode ser um dos seguintes valores:MF_BYCOMMAND Especifica que o parâmetro fornece a ID de comando do item de menu existente.Este é o padrão.
MF_BYPOSITION Especifica que o parâmetro oferece a posição do item de menu existente.O primeiro item é na posição 0.
Valor de retorno
O valor 0xFFFFFFFF se o item especificado não existe.If nId identifica um menu pop-up, o byte de ordem superior contém o número de itens no menu pop-up e o byte de ordem inferior contém os sinalizadores de menu associados no menu pop-up.Caso contrário, o valor retornado é uma máscara (booliano OR) dos valores da lista a seguir (essa máscara descreve o status do item de menu que nId identifica):
MF_CHECKED Funciona sistema autônomo uma alternância com MF_UNCHECKED para colocar a marca de seleção padrão próxima ao item.Quando o aplicativo fornece bitmaps de marca de seleção (consulte o SetMenuItemBitmapsfunção de membro), o bitmap de "marca de seleção em" é exibido.
MF_DISABLED Desabilita o item de menu para que ele não pode ser selecionado, mas não esmaecer.
MF_ENABLED Permite que o item de menu para que ele pode ser selecionado e restaura o estado esmaecido. Observe que o valor desta constante é 0; não deve testar um aplicativo contra 0 para Falha ao usar esse valor.
MF_GRAYED Desabilita o item de menu para que ele não pode ser selecionado e escurece a ele.
MF_MENUBARBREAK Posiciona o item em uma nova linha em menus estático ou em uma nova coluna nos menus pop-up.A nova coluna de menu pop-up será separada da coluna antiga por uma linha divisória vertical.
MF_MENUBREAK Posiciona o item em uma nova linha em menus estático ou em uma nova coluna nos menus pop-up.Nenhuma linha divisória é colocada entre as colunas.
MF_SEPARATOR Desenha uma linha divisória horizontal.Só pode ser usado em um menu pop-up.Essa linha não pode ser esmaecida, desabilitado ou realçada.Outros parâmetros serão ignorados.
MF_UNCHECKED Funciona sistema autônomo uma alternância com MF_CHECKED para remover uma marca de seleção próxima ao item.Quando o aplicativo fornece bitmaps de marca de seleção (consulte o SetMenuItemBitmapsfunção de membro), o bitmap de "marca de seleção Desativar" é exibido. Observe que o valor desta constante é 0; não deve testar um aplicativo contra 0 para Falha ao usar esse valor.
Exemplo
// 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
Cabeçalho: afxwin.h