Classe CMFCMenuButton
Um botão que exibe um menu pop-up e relata as seleções de menu do usuário.
Sintaxe
class CMFCMenuButton : public CMFCButton
Membros
Construtores públicos
Nome | Descrição |
---|---|
CMFCMenuButton::CMFCMenuButton | Constrói um objeto CMFCMenuButton . |
Métodos públicos
Nome | Descrição |
---|---|
CMFCMenuButton::PreTranslateMessage | Chamado pela estrutura para traduzir mensagens de janela antes de serem enviadas. (Substitui CMFCButton::PreTranslateMessage .) |
CMFCMenuButton::SizeToContent | Altera o tamanho do botão de acordo com seu tamanho de texto e imagem. |
Membros de dados
Nome | Descrição |
---|---|
CMFCMenuButton::m_bOSMenu | Especifica se o menu pop-up do sistema padrão deve ser exibido ou se deve ser usado CContextMenuManager::TrackPopupMenu. |
CMFCMenuButton::m_bRightArrow | Especifica se o menu pop-up aparecerá abaixo ou à direita do botão. |
CMFCMenuButton::m_bStayPressed | Especifica se o botão de menu altera seu estado depois que o usuário libera o botão. |
CMFCMenuButton::m_hMenu | Um identificador no menu anexado do Windows. |
CMFCMenuButton::m_nMenuResult | Um identificador que indica qual item o usuário selecionou no menu pop-up. |
CMFCMenuButton::m_bDefaultClick | Permite o processamento padrão (no botão texto/imagem). |
Comentários
A classe CMFCMenuButton
é derivada da Classe CMFCButton, que, por sua vez, é derivada da Classe CButton. Portanto, você pode usar CMFCMenuButton
em seu código da mesma maneira que usaria CButton
.
Ao criar um CMFCMenuButton
, você deve passar um identificador para o menu pop-up associado. Em seguida, chame a função CMFCMenuButton::SizeToContent
. CMFCMenuButton::SizeToContent
verifica se o tamanho do botão é suficiente para incluir uma seta que aponta para o local onde a janela pop-up aparecerá, ou seja, abaixo ou à direita do botão.
Exemplo
O exemplo a seguir demonstra como definir o identificador do menu anexado ao botão, redimensionar o botão de acordo com seu tamanho de texto e imagem e definir o menu pop-up exibido pela estrutura. Este snippet de código faz parte do exemplo de Novos Controles.
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
Requisitos
Cabeçalho: afxmenubutton.h
CMFCMenuButton::CMFCMenuButton
Constrói um novo objeto CMFCMenuButton.
CMFCMenuButton();
CMFCMenuButton::m_bOSMenu
Uma variável de membro booliano que indica qual menu pop-up a estrutura exibe.
BOOL m_bOSMenu;
Comentários
Se m_bOSMenu
for TRUE, a estrutura chamará o método TrackPopupMenu
herdado para esse objeto. Caso contrário, a estrutura chamará CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow
Uma variável de membro booliano que indica o local do menu pop-up.
BOOL m_bRightArrow;
Comentários
Quando o usuário pressiona o botão de menu, o aplicativo mostra um menu pop-up. A estrutura exibirá o menu pop-up abaixo ou à direita do botão. O botão também tem uma pequena seta que indica onde o menu pop-up será exibido. Se m_bRightArrow
for TRUE, a estrutura exibirá o menu pop-up à direita do botão. Caso contrário, ele exibe o menu pop-up abaixo do botão.
CMFCMenuButton::m_bStayPressed
Uma variável de membro booliano que indica se o botão de menu aparece pressionado enquanto o usuário faz uma seleção no menu pop-up.
BOOL m_bStayPressed;
Comentários
Se o membro m_bStayPressed
for FALSE, o botão de menu não será pressionado quando o uso clicar no botão. Nesse caso, a estrutura exibe apenas o menu pop-up.
Se o membro m_bStayPressed
for TRUE, o botão de menu ficará pressionado quando o usuário clicar no botão. Ele permanece pressionado até que o usuário feche o menu pop-up, seja selecionando ou cancelando.
CMFCMenuButton::m_hMenu
O identificador do menu anexado.
HMENU m_hMenu;
Comentários
A estrutura exibe o menu indicado por essa variável de membro quando o usuário clica no botão de menu.
CMFCMenuButton::m_nMenuResult
Um inteiro que indica qual item o usuário seleciona no menu pop-up.
int m_nMenuResult;
Comentários
O valor dessa variável de membro será zero se o usuário 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;
Comentários
A configuração m_bDefaultClick como false faz com que o botão mostre o menu quando você clica em qualquer lugar no botão.
CMFCMenuButton::PreTranslateMessage
Chamado pela estrutura para traduzir mensagens de janela antes de serem enviadas.
virtual BOOL PreTranslateMessage(MSG* pMsg);
Parâmetros
pMsg
[in] Aponta para uma estrutura MSG que contém a mensagem a ser processada.
Valor de retorno
Diferente de zero se a mensagem foi convertida e não deve ser expedida; zero se a mensagem não foi convertida e deve ser enviada.
Comentários
CMFCMenuButton::SizeToContent
Altera o tamanho do botão de acordo com seu tamanho de texto e tamanho da imagem.
virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);
Parâmetros
bCalcOnly
[in] Um parâmetro booliano que indica se esse método redimensiona o botão.
Valor de retorno
Um objeto CSize que especifica o novo tamanho do botão.
Comentários
Se você chamar essa função e bCalcOnly for TRUE, SizeToContent
calculará apenas o novo tamanho do botão.
O novo tamanho do botão é calculado para ajustar o texto do botão, a imagem e a seta. A estrutura também adiciona margens predefinidas de 10 pixels para a borda horizontal e 5 pixels para a borda vertical.