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
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));
CMFCDropDownToolbarButton::DropDownToolbar
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