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