Compartilhar via


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

Consulte também

Referência

Classe CMenu

Gráfico de hierarquia

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem

Outros recursos

CMenu membros