Compartilhar via


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

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

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 Devolução

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 Devolução

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.

Confira também

Gráfico da hierarquia
Classes
Classe CMFCButton