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 o ID de item de menu, conforme determinado por nFlags.

  • nFlags
    Especifica a natureza de nID.Pode ser um dos seguintes valores:

    • MF_BYCOMMAND especifica que o parâmetro fornece a identificação do comando de menu item existente.Esse é o padrão.

    • MF_BYPOSITION especifica que o parâmetro retorna a posição do item de menu existente.O primeiro item está na posição 0.

Valor de retorno

O valor 0xFFFFFFFF se o item especificado não existir.Se o nId identifica um menu pop-up, o byte de alta-ordem contém o número de itens no menu pop-up e o byte de ordem baixa contém os sinalizadores de menu associados com o menu pop-up.Se não o valor de retorno é uma máscara booleano (OPERADOR) dos valores na lista (essa máscara descreve o status do item de menu que identifica o nId ):

  • MF_CHECKED atua como uma alternância com MF_UNCHECKED para colocar a marca de seleção padrão ao lado do item.Quando o aplicativo forneça bitmaps de sinal (veja a função de membro de SetMenuItemBitmaps ), “marca de seleção no bitmap é exibida.

  • MF_DISABLED desativa o item de menu para que não possa ser selecionado mas não o escurece.

  • MF_ENABLED permite que o item de menu para que ele pode ser selecionado e o restaurará ela de seu estado esmaecido.Observe que o valor da constante for 0; um aplicativo não deve testar com 0 para a falha ao usar esse valor.

  • MF_GRAYED desativa o item de menu para que não possa ser selecionado e escurece-o.

  • MF_MENUBARBREAK coloca o item em uma nova linha em menus estáticos ou em uma nova coluna nos menus pop-up.A nova coluna de menus pop-up será separada da coluna antigo por uma linha de divisão vertical.

  • MF_MENUBREAK coloca o item em uma nova linha em menus estáticos ou em uma nova coluna nos menus pop-up.Nenhuma linha de divisão é colocada entre colunas.

  • MF_SEPARATOR desenha uma linha de divisão horizontal.Só pode ser usado em um menu pop-up.Esta linha não pode ser desativado obscurecida, ou realçado.Outros parâmetros são ignorados.

  • MF_UNCHECKED atua como uma alternância com MF_CHECKED para remover uma marca de seleção próxima ao item.Quando o aplicativo forneça bitmaps de sinal (veja a função de membro de SetMenuItemBitmaps ), “marca de seleção” fora de bitmap é exibida.Observe que o valor da constante for 0; um aplicativo não deve testar com 0 para a 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 de CMenu

Gráfico de hierarquia

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem