Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
O CContextMenuManager objeto gere menus de atalho, também conhecidos como menus de contexto.
Sintaxe
class CContextMenuManager : public CObject
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CContextMenuManager::CContextMenuManager | Constrói um CContextMenuManager objeto. |
CContextMenuManager::~CContextMenuManager |
Destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CContextMenuManager::AddMenu | Adiciona um novo menu de atalhos. |
| CContextMenuManager::GetMenuById | Devolve um handle ao menu associado ao ID de recurso fornecido. |
| CContextMenuManager::GetMenuByName | Devolve um handle ao menu que corresponde ao nome fornecido. |
| CContextMenuManager::GetMenuNames | Devolve uma lista de nomes dos menus. |
| CContextMenuManager::LoadState | Carrega os menus de atalho armazenados no registo do Windows. |
| CContextMenuManager::ResetState | Limpa os menus de atalhos do gestor de menu contextual. |
| CContextMenuManager::SaveState | Guarda os menus de atalhos no registo do Windows. |
| CContextMenuManager::SetDontCloseActiveMenu | Controla se fecha CContextMenuManager o menu de atalhos ativo quando aparece um novo menu de atalhos. |
| CContextMenuManager::ShowPopupMenu | Mostra o menu de atalhos especificado. |
| CContextMenuManager::TrackPopupMenu | Mostra o menu de atalhos especificado. Retorna o índice do comando de menu selecionado. |
Observações
CContextMenuManager gere menus de atalhos e garante que têm uma aparência consistente.
Não deves criar um CContextMenuManager objeto manualmente. A estrutura da sua aplicação cria o CContextMenuManager objeto. No entanto, deve ligar para CWinAppEx::InitContextMenuManager quando a sua aplicação for inicializada. Depois de inicializar o gestor de contexto, use o método CWinAppEx::GetContextMenuManager para obter um ponteiro para o gestor de contexto da sua aplicação.
Podes criar menus de atalho em tempo de execução chamando AddMenu. Se quiser mostrar o menu sem primeiro receber a entrada do utilizador, ligue ShowPopupMenupara .
TrackPopupMenu é usado quando se quer criar um menu e esperar pela entrada do utilizador.
TrackPopupMenu devolve o índice do comando selecionado ou 0 se o utilizador saiu sem selecionar nada.
Também CContextMenuManager pode guardar e carregar o seu estado no registo do Windows.
Example
O exemplo seguinte demonstra como adicionar um menu a um CContextMenuManager objeto e como não fechar o menu pop-up ativo quando o CContextMenuManager objeto apresenta um novo menu pop-up. Este excerto de código faz parte do exemplo de Páginas Personalizadas.
// The GetContextMenuManager method is inherited from the CWinAppEx class.
GetContextMenuManager()->AddMenu(_T("My menu"), IDR_CONTEXT_MENU);
GetContextMenuManager()->SetDontCloseActiveMenu(true);
Hierarquia de herança
CContextMenuManager
Requerimentos
Cabeçalho: afxcontextmenumanager.h
CContextMenuManager::AddMenu
Adiciona um novo menu de atalhos ao CContextMenuManager.
BOOL AddMenu(
UINT uiMenuNameResId,
UINT uiMenuResId);
BOOL AddMenu(
LPCTSTR lpszName,
UINT uiMenuResId);
Parâmetros
uiMenuNameResId
[dentro] Um ID de recurso para uma cadeia que contém o nome do novo menu.
uiMenuResId
[dentro] O ID do recurso do menu.
lpszName
[dentro] Uma cadeia que contém o nome do novo menu.
Valor de retorno
Não nulo se o método fosse bem-sucedido; 0 se o método falhar.
Observações
Este método falha se uiMenuResId for inválido ou se outro menu com o mesmo nome já estiver no CContextMenuManagerarquivo .
CContextMenuManager::CContextMenuManager
Constrói um objeto CContextMenuManager .
CContextMenuManager();
Observações
Na maioria dos casos, não deve criar um CContextMenuManager manualmente. A estrutura da sua aplicação cria o CContextMenuManager objeto. Deve ligar para CWinAppEx::InitContextMenuManager durante a inicialização da sua aplicação. Para obter um apontador para o gestor de contexto, ligue para CWinAppEx::GetContextMenuManager.
CContextMenuManager::GetMenuById
Devolve um handle ao menu associado a um determinado ID de recurso.
HMENU GetMenuById(UINT nMenuResId) const;
Parâmetros
nMenuResId
[dentro] O ID do recurso para o menu.
Valor de retorno
Um handle para o menu associado ou NULL , se o menu não for encontrado.
CContextMenuManager::GetMenuByName
Devolve uma alavanca a um menu específico.
HMENU GetMenuByName(
LPCTSTR lpszName,
UINT* puiOrigResID = NULL) const;
Parâmetros
lpszName
[dentro] Uma cadeia que contém o nome do menu para recuperar.
puiOrigResID
[fora] Um indicador para um UINT. Este parâmetro contém o ID do recurso do menu especificado, caso seja encontrado.
Valor de retorno
Um nome no menu que corresponde ao nome especificado por lpszName. NULL se não houver um menu chamado lpszName.
Observações
Se este método encontrar um menu que corresponda ao lpszName, GetMenuByName armazena o ID do recurso do menu no parâmetro puiOrigResID.
CContextMenuManager::GetMenuNames
Devolve a lista de nomes de menus adicionados ao CContextMenuManager.
void GetMenuNames(CStringList& listOfNames) const;
Parâmetros
listaDeNomes
[fora] Uma referência a um parâmetro CStringList . Este método escreve a lista de nomes dos menus neste parâmetro.
CContextMenuManager::LoadState
Carrega a informação associada à Classe CContextMenuManager a partir do registo do Windows.
virtual BOOL LoadState(LPCTSTR lpszProfileName = NULL);
Parâmetros
lpszProfileName
[dentro] Uma cadeia que contém o caminho relativo de uma chave de registo.
Valor de retorno
Diferente de zero se o método for bem-sucedido; caso contrário, 0.
Observações
O parâmetro lpszProfileName não é o caminho absoluto para uma entrada de registo. É um caminho relativo que é adicionado ao final da chave padrão do registo da sua aplicação. Para obter ou definir a chave de registo predefinida, use os métodos CWinAppEx::GetRegistryBase e CWinAppEx::SetRegistryBase , respetivamente.
Use o método CContextMenuManager::SaveState para guardar os menus de atalho no registo.
CContextMenuManager::ResetState
Limpa todos os itens dos menus de atalho associados à classe CContextMenuManager.
virtual BOOL ResetState();
Valor de retorno
TRUE se o método for bem-sucedido; FALSE se ocorrer uma falha.
Observações
Este método limpa os menus pop-up e remove-os do CContextMenuManagerarquivo .
CContextMenuManager::SaveState
Guarda a informação associada à Classe CContextMenuManager no registo do Windows.
virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL);
Parâmetros
lpszProfileName
[dentro] Uma cadeia que contém o caminho relativo de uma chave de registo.
Valor de retorno
Diferente de zero se o método for bem-sucedido; caso contrário, 0.
Observações
O parâmetro lpszProfileName não é o caminho absoluto para uma entrada de registo. É um caminho relativo que é adicionado ao final da chave padrão do registo da sua aplicação. Para obter ou definir a chave de registo predefinida, use os métodos CWinAppEx::GetRegistryBase e CWinAppEx::SetRegistryBase , respetivamente.
Use o método CContextMenuManager::LoadState para carregar os menus de atalho a partir do registo.
CContextMenuManager::SetDontCloseActiveMenu
Controla se o CContextMenuManager fecha o menu pop-up ativo quando aparece um novo menu pop-up.
void SetDontCloseActiveMenu (BOOL bSet = TRUE);
Parâmetros
bSet
[dentro] Um parâmetro booleano que controla se deve fechar o menu pop-up ativo. Um valor de TRUE indica que o menu pop-up ativo não está fechado. FALSE indica que o menu pop-up ativo está fechado.
Observações
Por defeito, fecha CContextMenuManager o menu pop-up ativo.
CContextMenuManager::ShowPopupMenu
Mostra o menu de atalhos especificado.
virtual BOOL ShowPopupMenu(
UINT uiMenuResId,
int x,
int y,
CWnd* pWndOwner,
BOOL bOwnMessage = FALSE,
BOOL bRightAlign = FALSE);
virtual CMFCPopupMenu* ShowPopupMenu(
HMENU hmenuPopup,
int x,
int y,
CWnd* pWndOwner,
BOOL bOwnMessage = FALSE,
BOOL bAutoDestroy = TRUE,
BOOL bRightAlign = FALSE);
Parâmetros
uiMenuResId
[dentro] O ID do recurso do menu que este método irá mostrar.
x
[dentro] O deslocamento horizontal do menu de atalhos nas coordenadas do cliente.
y
[dentro] O deslocamento vertical do menu de atalho nas coordenadas do cliente
pWndOwner
[dentro] Um apontador para a janela principal do menu de atalhos.
bOwnMessage
[dentro] Um parâmetro booleano que indica como as mensagens são encaminhadas. Se o bOwnMessage for FALSO, é usado o encaminhamento MFC padrão. Caso contrário, o pWndOwner recebe as mensagens.
hmenuPopup
[dentro] O handle do menu que este método irá mostrar.
bAutoDestroy
[dentro] Um parâmetro booleano que indica se o menu será automaticamente destruído.
bRightAlign
[dentro] Um parâmetro booleano que indica como os itens do menu estão alinhados. Se o bRightAlign for VERDADEIRO, o menu está alinhado à direita para a ordem de leitura da direita para a esquerda.
Valor de retorno
A sobrecarga do primeiro método retorna diferente de zero se o método mostrar o menu com sucesso; caso contrário, 0. A sobrecarga do segundo método devolve um ponteiro para CMFCPopupMenu se o menu de atalho for exibido corretamente; caso contrário, NULL.
Observações
Este método assemelha-se ao método CContextMenuManager::TrackPopupMenu , pois ambos os métodos exibem um menu de atalho. No entanto, TrackPopupMenu devolve o índice do comando de menu selecionado.
Se o parâmetro bAutoDestroy for FALSO, deve chamar manualmente o método herdado DestroyMenu para libertar recursos de memória. A implementação padrão de ShowPopupMenu não utiliza o parâmetro bAutoDestroy. É fornecido para uso futuro ou para classes personalizadas derivadas da CContextMenuManager classe .
CContextMenuManager::TrackPopupMenu
Apresenta o menu de atalhos especificado e devolve o índice do comando selecionado no menu de atalho.
virtual UINT TrackPopupMenu(
HMENU hmenuPopup,
int x,
int y,
CWnd* pWndOwner,
BOOL bRightAlign = FALSE);
Parâmetros
hmenuPopup
[dentro] A alavanca do menu de atalho que este método apresenta.
x
[dentro] O deslocamento horizontal do menu de atalhos nas coordenadas do cliente.
y
[dentro] O deslocamento vertical para o menu de atalho nas coordenadas do cliente.
pWndOwner
[dentro] Um apontador para a janela principal do menu de atalhos.
bRightAlign
[dentro] Um parâmetro booleano que indica como os itens do menu estão alinhados. Se o bRightAlign for VERDADEIRO, o menu está alinhado à direita para a ordem de leitura da direita para a esquerda. Se o bRightAlign for FALSE, o menu está alinhado à esquerda para a ordem de leitura da esquerda para a direita.
Valor de retorno
O ID do comando do menu do comando que o utilizador escolhe; 0 se o utilizador fechar o menu de atalho sem selecionar um comando de menu.
Observações
Este método funciona como uma chamada modal para mostrar um menu de atalho. A aplicação não continuará até à linha seguinte no código até que o utilizador feche o menu de atalho ou selecione um comando. Um método alternativo que pode usar para mostrar um menu de atalhos é o CContextMenuManager::ShowPopupMenu. Esse método não é uma chamada modal e não devolverá o ID do comando selecionado.