Classe CCmdUI

Usada somente em um manipulador ON_UPDATE_COMMAND_UI em uma classe derivada de CCmdTarget.

Sintaxe

class CCmdUI

Membros

Métodos públicos

Nome Descrição
CCmdUI::ContinueRouting Informa ao mecanismo de roteamento de comandos para continuar roteando a mensagem atual para baixo na cadeia de manipuladores.
CCmdUI::Enable Habilita ou desabilita o item de interface do usuário para este comando.
CCmdUI::SetCheck Define o estado de verificação do item de interface do usuário para este comando.
CCmdUI::SetRadio Como a função membro SetCheck, mas operando em grupos de botões de opção.
CCmdUI::SetText Define o texto do item de interface do usuário para este comando.

Membros de Dados Públicos

Nome Descrição
CCmdUI::m_nID A ID do objeto de interface do usuário.
CCmdUI::m_nIndex O índice do objeto de interface do usuário.
CCmdUI::m_pMenu Aponta para o menu representado pelo objeto CCmdUI.
CCmdUI::m_pOther Aponta para o objeto de janela que enviou a notificação.
CCmdUI::m_pSubMenu Aponta para o submenu contido representado pelo objeto CCmdUI.

Comentários

CCmdUI não tem uma classe base.

Quando um usuário do aplicativo efetua pull de um menu, cada item de menu precisa saber se ele deve ser exibido como habilitado ou desabilitado. O destino de cada comando de menu fornece essas informações implementando um manipulador ON_UPDATE_COMMAND_UI. Para cada um dos objetos de interface do usuário de comando em seu aplicativo, use o Assistente de Classe ou a janela Propriedades (no Modo de Exibição de Classe) para criar uma entrada de mapa de mensagens e um protótipo de função para cada manipulador.

Quando é efetuado pull do menu, a estrutura procura e chama cada manipulador ON_UPDATE_COMMAND_UI, cada manipulador chama funções membro CCmdUI como Enable e Check, e em seguida a estrutura exibe adequadamente cada item de menu.

Um item de menu pode ser substituído por um botão de barra de controle ou outro objeto de interface do usuário de comando sem alterar o código dentro do manipulador ON_UPDATE_COMMAND_UI.

A tabela a seguir resume o efeito que as funções membro de CCmdUI têm em vários itens de interface do usuário de comando.

Item de interface do usuário Habilitar SetCheck SetRadio SetText
Item de menu Habilita ou desabilita Marca ou desmarca Marca com um ponto Define texto do item
Botão da barra de ferramentas Habilita ou desabilita Seleciona, desmarca ou indetermina Mesmo que SetCheck (Não aplicável)
Painel da barra de status Torna o texto visível ou invisível Define borda normal ou destacada Mesmo que SetCheck Define texto do painel
Botão normal em CDialogBar Habilita ou desabilita Marca ou desmarca a caixa de seleção Mesmo que SetCheck Define texto do botão
Controle normal em CDialogBar Habilita ou desabilita (Não aplicável) (Não aplicável) Define texto da janela

Para obter mais informações sobre o uso dessa classe, consulte Como atualizar objetos de interface do usuário.

Hierarquia de herança

CCmdUI

Requisitos

Cabeçalho: afxwin.h

CCmdUI::ContinueRouting

Chame esta função membro para informar ao mecanismo de roteamento de comandos para continuar roteando a mensagem atual para baixo na cadeia de manipuladores.

void ContinueRouting();

Comentários

Essa é uma função membro avançada, que deve ser usada em conjunto com um manipulador ON_COMMAND_EX que retorna FALSE. Para mais informações, confira Nota Técnica 6.

CCmdUI::Enable

Chame essa função membro para habilitar ou desabilitar o item de interface do usuário para este comando.

virtual void Enable(BOOL bOn = TRUE);

Parâmetros

bOn
TRUE para habilitar o item, FALSE para desabilitá-lo.

Exemplo

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

A ID do item de menu, o botão da barra de ferramentas ou outro objeto de interface do usuário representado pelo objeto CCmdUI.

UINT m_nID;

CCmdUI::m_nIndex

O índice do item de menu, o botão da barra de ferramentas ou outro objeto de interface do usuário representado pelo objeto CCmdUI.

UINT m_nIndex;

CCmdUI::m_pMenu

Ponteiro (do tipo CMenu) para o menu representado pelo objeto CCmdUI.

CMenu* m_pMenu;

Comentários

NULL se o item não for um menu.

CCmdUI::m_pSubMenu

Ponteiro (do tipo CMenu) para o submenu contido representado pelo objeto CCmdUI.

CMenu* m_pSubMenu;

Comentários

NULL se o item não for um menu. Se o submenu for um pop-up, m_nID conterá a ID do primeiro item no menu pop-up. Para mais informações, confira Nota Técnica 21.

CCmdUI::m_pOther

Ponteiro (do tipo CWnd) para o objeto de janela, como uma barra de ferramentas ou de status, que enviou a notificação.

CWnd* m_pOther;

Comentários

NULL se o item for um menu ou um objeto diferente de CWnd.

CCmdUI::SetCheck

Chame essa função membro para definir o item de interface do usuário para este comando para o estado de verificação apropriado.

virtual void SetCheck(int nCheck = 1);

Parâmetros

nCheck
Especifica o estado de seleção a ser definido. Se 0, desmarca; se 1, marca; e se 2, indetermina.

Comentários

Essa função de membro funciona para itens de menu e botões da barra de ferramentas. O estado indeterminado aplica-se somente aos botões da barra de ferramentas.

CCmdUI::SetRadio

Chame essa função membro para definir o item de interface do usuário para este comando para o estado de verificação apropriado.

virtual void SetRadio(BOOL bOn = TRUE);

Parâmetros

bOn
TRUE para habilitar o item; caso contrário, FALSE.

Comentários

Essa função membro opera como SetCheck, exceto que ela opera em itens de interface do usuário que atuam como parte de um grupo de botões de opção. Desmarcar os outros itens no grupo não é automático, a menos que os próprios itens mantenham o comportamento do grupo de botões de opção.

CCmdUI::SetText

Chame essa função membro para definir o texto do item de interface do usuário para este comando.

virtual void SetText(LPCTSTR lpszText);

Parâmetros

lpszTexto
Um ponteiro para uma cadeia de caracteres de texto.

Exemplo

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

Confira também

MDI de exemplo do MFC
Gráfico da hierarquia
Classe CCmdTarget