Compartilhar via


Classe CMFCDropDownToolbarButton

Um tipo de botão de barra de ferramentas que se comporta como um botão normal quando ele é clicado. No entanto, abre uma barra de ferramentas suspensa (Classe CMFCDropDownToolBar), quando o usuário mantém pressionado o botão de barra de ferramentas.

Sintaxe

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Membros

Construtores públicos

Nome Descrição
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton Constrói um objeto CMFCDropDownToolbarButton.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Destruidor.

Métodos públicos

Nome Descrição
CMFCDropDownToolbarButton::CopyFrom Copia as propriedades de outro botão de barra de ferramentas para o botão atual. (Substitui CMFCToolBarButton::CopyFrom.)
CMFCDropDownToolbarButton::CreateObject Usado pela estrutura para criar uma instância dinâmica desse tipo de classe.
CMFCDropDownToolbarButton::DropDownToolbar Abre uma barra de ferramentas suspensa.
CMFCDropDownToolbarButton::ExportToMenuButton Copia o texto do botão de barra de ferramentas para um menu. (Substitui CMFCToolBarButton::ExportToMenuButton.)
CMFCDropDownToolbarButton::GetDropDownToolBar Recupera a barra de ferramentas suspensa associada ao botão.
CMFCDropDownToolbarButton::GetThisClass Usado pela estrutura para obter um ponteiro para o objeto CRuntimeClass associado a esse tipo de classe.
CMFCDropDownToolbarButton::IsDropDown Determina se a barra de ferramentas suspensa está aberta no momento.
CMFCDropDownToolbarButton::IsExtraSize Determina se o botão pode ser exibido com uma borda estendida. (Substitui CMFCToolBarButton::IsExtraSize.)
CMFCDropDownToolbarButton::OnCalculateSize Chamado pela estrutura para calcular o tamanho do botão para o contexto do dispositivo e o estado de encaixe especificados. (Substitui CMFCToolBarButton::OnCalculateSize.)
CMFCDropDownToolbarButton::OnCancelMode Chamado pela estrutura para lidar com a mensagem WM_CANCELMODE. (Substitui CMCToolBarButton::OnCancelMode.)
CMFCDropDownToolbarButton::OnChangeParentWnd Chamado pela estrutura quando o botão é inserido em uma nova barra de ferramentas. (Substitui CMFCToolBarButton::OnChangeParentWnd.)
CMFCDropDownToolbarButton::OnClick Chamado pela estrutura quando o usuário clica no botão do mouse. (Substitui CMFCToolBarButton::OnClick.)
CMFCDropDownToolbarButton::OnClickUp Chamado pela estrutura quando o usuário libera o botão do mouse. (Substitui CMFCToolBarButton::OnClickUp.)
CMFCDropDownToolbarButton::OnContextHelp Chamado pela estrutura quando a barra de ferramentas pai manipula uma mensagem WM_HELPHITTEST. (Substitui CMFCToolBarButton::OnContextHelp.)
CMFCDropDownToolbarButton::OnCustomizeMenu Modifica o menu fornecido quando o aplicativo exibe um menu de atalho na barra de ferramentas pai. (Substitui CMFCToolBarButton::OnCustomizeMenu.)
CMFCDropDownToolbarButton::OnDraw Chamado pela estrutura para desenhar o botão usando os estilos e as opções especificados. (Substitui CMFCToolBarButton::OnDraw.)
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Chamado pela estrutura para desenhar o botão no painel Comandos da caixa de diálogo Personalizar. (Substitui CMFCToolBarButton::OnDrawOnCustomizeList.)
CMFCDropDownToolbarButton::Serialize Lê esse objeto de um arquivo morto ou grava-o em um arquivo morto. (Substitui CMFCToolBarButton::Serialize.)
CMFCDropDownToolbarButton::SetDefaultCommand Define o comando padrão que a estrutura usa quando um usuário clica no botão.

Membros de dados

Nome Descrição
CMFCDropDownToolbarButton::m_uiShowBarDelay Especifica o período pelo qual um usuário deve manter pressionado o botão do mouse, para que a barra de ferramentas suspensa seja exibida.

Comentários

Um CMFCDropDownToolBarButton é diferente de um botão comum, pois tem uma pequena seta no canto inferior direito do botão. Depois que o usuário seleciona um botão na barra de ferramentas suspensa, a estrutura exibe o ícone no botão de barra de ferramentas de nível superior (o botão com a pequena seta no canto inferior direito).

Para obter informações sobre como implementar uma barra de ferramentas suspensa, confira Classe CMFCDropDownToolBar.

O objeto CMFCDropDownToolBarButton pode ser exportado para um objeto Classe CMFCToolBarMenuButton e exibido como botão de menu com um menu pop-up.

Hierarquia de herança

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Requisitos

Cabeçalho: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Copia as propriedades de outro botão de barra de ferramentas para o botão atual.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parâmetros

src
[in] Uma referência ao botão de origem do qual copiar.

Comentários

Chame esse método para copiar outro botão de barra de ferramentas para este botão de barra de ferramentas. src deve ser do tipo CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

Constrói um objeto CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Parâmetros

lpszName
[in] O texto padrão do botão.

pToolBar
[in] Um ponteiro para o objeto CMFCDropDownToolBar exibido quando o usuário pressiona o botão.

Comentários

A segunda sobrecarga do construtor copia para o botão suspenso o primeiro botão na barra de ferramentas especificada por pToolBar.

Normalmente, um botão de barra de ferramentas suspenso usa o texto do botão usado mais recentemente na barra de ferramentas especificada por pToolBar. Ele usa o texto especificado por lpszName, quando o botão é convertido em um botão de menu ou é exibido na guia Comandos da caixa de diálogo Personalizar. Para mais informações sobre a caixa de diálogo Personalizar, confira Classe CMFCToolBarsCustomizeDialog.

Exemplo

O exemplo a seguir demonstra como construir um objeto da classe CMFCDropDownToolbarButton. Esse snippet de código faz parte do exemplo de Demonstração do Visual Studio.

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

Abre uma barra de ferramentas suspensa.

BOOL DropDownToolbar(CWnd* pWnd);

Parâmetros

pWnd
[in] A janela pai do quadro suspenso ou NULL para usar a janela pai do botão de barra de ferramentas suspensa.

Valor de retorno

Um valor diferente de zero, se o método tiver êxito. Caso contrário, 0.

Comentários

O método CMFCDropDownToolbarButton::OnClick chama esse método para abrir a barra de ferramentas suspensa, quando o usuário mantém pressionado o botão de barra de ferramentas.

Esses métodos criam a barra de ferramentas suspensa usando o método CMFCDropDownFrame::Create. Se a barra de ferramentas pai estiver encaixada verticalmente, esse método posicionará a barra de ferramentas suspensa no lado esquerdo ou direito da barra de ferramentas pai, dependendo do ajuste. Caso contrário, esse método posiciona a barra de ferramentas suspensa abaixo da barra de ferramentas pai.

Esse método falhará se pWnd for NULL e o botão de barra de ferramentas suspensa não tiver uma janela pai.

CMFCDropDownToolbarButton::ExportToMenuButton

Copia o texto do botão de barra de ferramentas para um menu.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Parâmetros

menuButton
[in] Uma referência ao botão de menu de destino.

Valor de retorno

Um valor diferente de zero, se o método tiver êxito. Caso contrário, 0.

Comentários

Esse método chama a implementação da classe base (CMFCToolBarButton::ExportToMenuButton) e acrescenta ao botão de menu de destino um menu pop-up que contém cada item de menu da barra de ferramentas neste botão. Esse método não acrescenta sub menus ao menu pop-up.

Esse método falhará se a barra de ferramentas pai, m_pToolBar, for NULL ou a implementação da classe base retornar FALSE.

CMFCDropDownToolbarButton::GetDropDownToolBar

Recupera a barra de ferramentas suspensa associada ao botão.

CMFCToolBar* GetDropDownToolBar() const;

Valor de retorno

A barra de ferramentas suspensa associada ao botão.

Comentários

Esse método retorna o membro de dados m_pToolBar.

CMFCDropDownToolbarButton::IsDropDown

Determina se a barra de ferramentas suspensa está aberta no momento.

BOOL IsDropDown() const;

Valor de retorno

Um valor diferente de zero, se a barra de ferramentas suspensa estiver aberta no momento. Caso contrário, 0.

Comentários

A estrutura abre a barra de ferramentas suspensa usando o método CMFCDropDownToolbarButton::D ropDownToolbar. A estrutura fecha a barra de ferramentas suspensa, quando o usuário pressiona o botão esquerdo do mouse na área não cliente da barra de ferramentas suspensa.

CMFCDropDownToolbarButton::IsExtraSize

Determina se o botão pode ser exibido com uma borda estendida.

virtual BOOL IsExtraSize() const;

Valor de retorno

Um valor diferente de zero, se o botão de barra de ferramentas puder ser exibido com uma borda estendida. Caso contrário, 0.

Comentários

Para obter mais informações sobre bordas estendidas, confira CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Especifica o período pelo qual um usuário deve manter pressionado o botão do mouse, para que a barra de ferramentas suspensa seja exibida.

static UINT m_uiShowBarDelay;

Comentários

O tempo de atraso é medido em milissegundos. O valor padrão é 500. Você pode definir outro atraso, alterando o valor desse membro de dados compartilhado.

CMFCDropDownToolbarButton::OnCalculateSize

Chamado pela estrutura para calcular o tamanho do botão para o contexto do dispositivo e o estado de encaixe especificados.

virtual SIZE OnCalculateSize(
    CDC* pDC,
    const CSize& sizeDefault,
    BOOL bHorz);

Parâmetros

pDC
[in] O contexto do dispositivo que exibe o botão.

sizeDefault
[in] O tamanho padrão do botão.

bHorz
[in] O estado do encaixe da barra de ferramentas pai. Esse parâmetro será TRUE se a barra de ferramentas estiver encaixada horizontalmente ou estiver flutuante ou FALSE se a barra de ferramentas estiver encaixada verticalmente.

Valor de retorno

Uma estrutura SIZE que contém as dimensões do botão, em pixels.

Comentários

Esse método estende a implementação da classe base (CMFCToolBarButton::OnCalculateSize), adicionando a largura da seta suspensa à dimensão horizontal do tamanho do botão.

CMFCDropDownToolbarButton::OnChangeParentWnd

Chamado pela estrutura quando o botão é inserido em uma nova barra de ferramentas.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parâmetros

pWndParent
[in] A nova janela pai.

Comentários

Esse método substitui a implementação da classe base (CMFCToolBarButton::OnChangeParentWnd), desmarcando o rótulo de texto (CMFCToolBarButton::m_strText) e definindo os membros de dados CMFCToolBarButton::m_bText e CMFCToolBarButton::m_bUserButton como FALSE.

CMFCDropDownToolbarButton::OnClick

Chamado pela estrutura quando o usuário clica no botão do mouse.

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Parâmetros

pWnd
[in] A janela pai do botão de barra de ferramentas.

bDelay
[in] TRUE se a mensagem deve ser tratada com um atraso.

Valor de retorno

Um valor diferente de zero, se o botão processar a mensagem de clique. Caso contrário, 0.

Comentários

Esse método estende a implementação da classe base, CMFCToolBarButton::OnClick, atualizando o estado da barra de ferramentas suspensa.

Quando um usuário clica no botão de barra de ferramentas, esse método cria um temporizador que aguarda o período especificado pelo membro de dados CMFCDropDownToolbarButton::m_uiShowBarDelay e abre a barra de ferramentas suspensa usando o método CMFCDropDownToolbarButton::D ropDownToolbar. Esse método fecha a barra de ferramentas suspensa na segunda vez que o usuário clica no botão de barra de ferramentas.

CMFCDropDownToolbarButton::OnClickUp

Chamado pela estrutura quando o usuário libera o botão do mouse.

virtual BOOL OnClickUp();

Valor de retorno

Um valor diferente de zero, se o botão processar a mensagem de clique. Caso contrário, 0.

Comentários

Esse método estende a implementação da classe base, CMFCToolBarButton::OnClickUp, atualizando o estado da barra de ferramentas suspensa.

Esse método interromperá o temporizador da barra de ferramentas suspensa, se ele estiver ativo. Ele fechará a barra de ferramentas suspensa, se ela estiver aberta.

Para obter mais informações sobre a barra de ferramentas suspensa e o temporizador da barra de ferramentas suspensa, confira CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Chamado pela estrutura quando a barra de ferramentas pai manipula uma mensagem WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Parâmetros

pWnd
[in] A janela pai do botão de barra de ferramentas.

Valor de retorno

Um valor diferente de zero, se o botão processar a mensagem de ajuda. Caso contrário, 0.

Comentários

Esse método estende a implementação da classe base (CMFCToolBarButton::OnContextHelp), chamando o método CMFCDropDownToolbarButton::OnClick com o bDelay definido como FALSE. Esse método retorna o valor devolvido por CMFCDropDownToolbarButton::OnClick.

Para mais informações sobre a mensagem WM_HELPHITTEST, confira TN028: Suporte para ajuda contextual.

CMFCDropDownToolbarButton::OnCustomizeMenu

Modifica o menu fornecido quando o aplicativo exibe um menu de atalho na barra de ferramentas pai.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Parâmetros

pMenu
[in] O menu a ser personalizado.

Valor de retorno

Esse método retorna TRUE.

Comentários

Esse método estende a implementação da classe base (CMFCToolBarButton::OnCustomizeMenu), desabilitando os seguintes itens de menu:

  • Copiar Imagem do Botão

  • Aparência do Botão

  • Imagem

  • Text

  • Imagem e Texto

Substitua esse método para modificar o menu de atalho que a estrutura exibe no modo de personalização.

CMFCDropDownToolbarButton::OnDraw

Chamado pela estrutura para desenhar o botão usando os estilos e as opções especificados.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    CMFCToolBarImages* pImages,
    BOOL bHorz = TRUE,
    BOOL bCustomizeMode = FALSE,
    BOOL bHighlight = FALSE,
    BOOL bDrawBorder = TRUE,
    BOOL bGrayDisabledButtons = TRUE);

Parâmetros

pDC
[in] O contexto do dispositivo que exibe o botão.

rect
[in] O retângulo delimitador do botão.

pImages
[in] A coleção de imagens da barra de ferramentas associada ao botão.

bHorz
[in] O estado do encaixe da barra de ferramentas pai. Esse parâmetro é TRUE quando o botão é encaixado horizontalmente e FALSE quando o botão é encaixado verticalmente.

bCustomizeMode
[in] Especifica se a barra de ferramentas está no modo de personalização. Esse parâmetro é TRUE quando a barra de ferramentas está no modo de personalização e FALSE quando a barra de ferramentas não está no modo de personalização.

bHighlight
[in] Especifica se o botão está realçado. Esse parâmetro é TRUE quando o botão é realçado e FALSE quando o botão não está realçado.

bDrawBorder
[in] Especifica se o botão deve exibir sua borda. Esse parâmetro é TRUE quando o botão deve exibir sua borda e FALSE quando o botão não deve exibir sua borda.

bGrayDisabledButtons
[in] Especifica se os botões desabilitados devem ser sombreados ou usar a coleção de imagens desabilitada. Esse parâmetro é TRUE quando os botões desabilitados devem ser sombreados e FALSE quando esse método deve usar a coleção de imagens desabilitada.

Comentários

Substitua esse método para personalizar o desenho do botão de barra de ferramentas.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Chamado pela estrutura para desenhar o botão no painel Comandos da caixa de diálogo Personalizar.

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Parâmetros

pDC
[in] O contexto do dispositivo que exibe o botão.

rect
[in] O retângulo delimitador do botão.

bSelected
[in] Determina se o botão foi selecionado. Se esse parâmetro for TRUE, o botão será selecionado. Se esse parâmetro for FALSE, o botão não será selecionado.

Valor de retorno

A largura, em pixels, do botão no contexto do dispositivo especificado.

Comentários

Esse método é chamado pela caixa de diálogo de personalização (guia Comandos) quando é necessário que o botão seja exibido na caixa de listagem de desenho do proprietário.

Esse método estende a implementação da classe base (CMFCToolBarButton::OnDrawOnCustomizeList), alterando o rótulo de texto do botão para o nome do botão (ou seja, para o valor do parâmetro lpszName que você passou para o construtor).

CMFCDropDownToolbarButton::Serialize

Lê esse objeto de um arquivo morto ou grava-o em um arquivo morto.

virtual void Serialize(CArchive& ar);

Parâmetros

ar
[in] O objeto CArchive do qual ou para o qual serializar.

Comentários

Esse método estende a implementação da classe base (CMFCToolBarButton::Serialize), serializando a ID do recurso de barra de ferramentas pai. Quando o arquivo está sendo carregado (CArchive::IsLoading retorna um valor diferente de zero), esse método define o membro de dados m_pToolBar para a barra de ferramentas que contém a ID do recurso serializado.

CMFCDropDownToolbarButton::SetDefaultCommand

Define o comando padrão que a estrutura usa quando um usuário clica no botão.

void SetDefaultCommand(UINT uiCmd);

Parâmetros

uiCmd
[in] A ID do comando padrão.

Comentários

Chame esse método para especificar um comando padrão que a estrutura executa quando o usuário clica no botão. Um item com a ID de comando especificada pelo uiCmd deve estar localizado na barra de ferramentas suspensa pai.

Confira também

Gráfico da hierarquia
Classes
Classe CMFCDropDownToolBar
Classe CMFCToolBar
Classe CMFCToolBarMenuButton
Instruções passo a passo: colocando controles em barras de ferramentas