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 CMenu

Gráfico da hierarquia

GetMenuState

CMenu::CheckMenuItem

CMenu::EnableMenuItem