Partilhar via


Classe CMFCMenuButton

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.

Um botão que mostra um menu pop-up e reporta as escolhas de menu do utilizador.

Sintaxe

class CMFCMenuButton : public CMFCButton

Membros

Construtores Públicos

Nome Description
CMFCMenuButton::CMFCMenuButton Constrói um CMFCMenuButton objeto.

Métodos Públicos

Nome Description
CMFCMenuButton::P reTranslateMessage Chamada pelo framework para traduzir mensagens de janela antes de serem enviadas. (Anula CMFCButton::PreTranslateMessage.)
CMFCMenuButton::TamanhoToConteúdo Altera o tamanho do botão de acordo com o texto e o tamanho da imagem.

Membros de Dados

Nome Description
CMFCMenuButton::m_bOSMenu Especifica se deve mostrar o menu pop-up padrão do sistema ou usar CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow Especifica se o menu pop-up aparecerá por baixo ou à direita do botão.
CMFCMenuButton::m_bStayPressed Especifica se o botão do menu altera o seu estado após o utilizador largar o botão.
CMFCMenuButton::m_hMenu Uma alavanca para o menu anexo do Windows.
CMFCMenuButton::m_nMenuResult Um identificador que indica qual item o utilizador selecionou no menu pop-up.
CMFCMenuButton::m_bDefaultClick Permitir processamento padrão (no botão de texto/imagem).

Observações

A CMFCMenuButton classe deriva da Classe CMFCButton que, por sua vez, é derivada da Classe CButton. Portanto, pode usar CMFCMenuButton no seu código da mesma forma que usaria CButton.

Ao criar um CMFCMenuButton, deve passar um handle para o menu pop-up associado. De seguida, chame à função CMFCMenuButton::SizeToContent. CMFCMenuButton::SizeToContent verifica se o tamanho do botão é suficiente para incluir uma seta que aponte para o local onde a janela pop-up aparecerá – nomeadamente, por baixo ou à direita do botão.

Example

O exemplo seguinte demonstra como definir a alavanca do menu associado ao botão, redimensionar o botão de acordo com o seu texto e tamanho da imagem, e definir o menu pop-up que é exibido pela estrutura. Este excerto de código faz parte do exemplo de Novos Controlos.

CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;

Hierarquia de herança

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

Requerimentos

Cabeçalho: afxmenubutton.h

CMFCMenuButton::CMFCMenuButton

Constrói um novo objeto CMFCMenuButton .

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

Uma variável membro booleana que indica qual menu pop-up o framework apresenta.

BOOL m_bOSMenu;

Observações

Se m_bOSMenu for TRUE, o framework chama o método herdado TrackPopupMenu para este objeto. Caso contrário, o framework chama CContextMenuManager::TrackPopupMenu.

CMFCMenuButton::m_bRightArrow

Uma variável membro booleana que indica a localização do menu pop-up.

BOOL m_bRightArrow;

Observações

Quando o utilizador pressiona o botão do menu, a aplicação mostra um menu pop-up. A estrutura irá mostrar o menu pop-up por baixo do botão ou à direita do botão. O botão também tem uma pequena seta que indica onde o menu pop-up irá aparecer. Se m_bRightArrow for VERDADEIRO, a estrutura mostra o menu pop-up à direita do botão. Caso contrário, mostra o menu pop-up por baixo do botão.

CMFCMenuButton::m_bStayPressed

Uma variável membro booleana que indica se o botão do menu aparece pressionado enquanto o utilizador faz uma seleção no menu pop-up.

BOOL m_bStayPressed;

Observações

Se o m_bStayPressed membro for FALSO, o botão do menu não é pressionado quando o utilizador clica no botão. Neste caso, a estrutura mostra apenas o menu pop-up.

Se o m_bStayPressed membro for VERDADEIRO, o botão do menu passa a ser pressionado quando o utilizador clica no botão. Mantém-se pressionado até o utilizador fechar o menu pop-up, seja fazendo uma seleção ou cancelando.

CMFCMenuButton::m_hMenu

A pega do menu anexo.

HMENU m_hMenu;

Observações

A estrutura apresenta o menu indicado por esta variável membro quando o utilizador clica no botão do menu.

CMFCMenuButton::m_nMenuResult

Um inteiro que indica qual item o utilizador seleciona no menu pop-up.

int m_nMenuResult;

Observações

O valor desta variável membro é zero se o utilizador cancelar o menu sem fazer uma seleção ou se ocorrer um erro.

CMFCMenuButton::m_bDefaultClick

Permite o processamento padrão de texto ou imagens no botão.

BOOL  m_bDefaultClick;

Observações

Definir m_bDefaultClick para false faz com que o botão apareça o menu quando clicas em qualquer parte do botão.

CMFCMenuButton::P reTranslateMessage

Chamada pelo framework para traduzir mensagens de janela antes de serem enviadas.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parâmetros

pMsg
[dentro] Aponta para uma estrutura MSG que contém a mensagem a processar.

Valor de retorno

Não nula se a mensagem foi traduzida e não deve ser enviada; 0 se a mensagem não for traduzida e deve ser enviada.

Observações

CMFCMenuButton::TamanhoToConteúdo

Altera o tamanho do botão de acordo com o tamanho do texto e da imagem.

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

Parâmetros

bCalcOnly
[dentro] Um parâmetro booleano que indica se este método redimensiona o botão .

Valor de retorno

Um objeto CSize que especifica o novo tamanho do botão.

Observações

Se chamares esta função e o bCalcOnly for TRUE, SizeToContent calculará apenas o novo tamanho do botão.

O novo tamanho do botão é calculado para se ajustar ao texto, imagem e seta do botão. A estrutura também adiciona margens pré-definidas de 10 píxeis para a aresta horizontal e 5 píxeis para a aresta vertical.

Consulte também

Gráfico de Hierarquia
Classes
Classe CMFCButton