Classe CMFCCaptionBar
Um objeto CMFCCaptionBar
é uma barra de controle que pode exibir três elementos: um botão, um rótulo de texto e um bitmap. Ele só pode exibir um elemento de cada tipo por vez. Você pode alinhar cada elemento às bordas esquerda ou direita do controle ou ao centro. Você também pode aplicar um estilo plano ou em 3D às bordas superior e inferior da barra de legenda.
Sintaxe
class CMFCCaptionBar : public CPane
Membros
Métodos públicos
Nome | Descrição |
---|---|
CMFCCaptionBar::Create | Cria o controle de barra de legenda e o anexa ao objeto CMFCCaptionBar . |
CMFCCaptionBar::DoesAllowDynInsertBefore | Indica se outro painel pode ser inserido dinamicamente entre a barra de legenda e seu quadro pai. (Substitui CBasePane::DoesAllowDynInsertBefore.) |
CMFCCaptionBar::EnableButton | Habilita ou desabilita o botão na barra de legenda. |
CMFCCaptionBar::GetAlignment | Retorna o alinhamento do elemento especificado. |
CMFCCaptionBar::GetBorderSize | Retorna o tamanho da borda da barra de legenda. |
CMFCCaptionBar::GetButtonRect | Recupera o retângulo delimitador do botão na barra de legendas. |
CMFCCaptionBar::GetMargin | Retorna a distância entre a borda dos elementos da barra de legenda e a borda do controle de barra de legenda. |
CMFCCaptionBar::IsMessageBarMode | Especifica se a barra de legenda está no modo de barra de mensagens. |
CMFCCaptionBar::RemoveBitmap | Remove a imagem bitmap da barra de legenda. |
CMFCCaptionBar::RemoveButton | Remove o botão da barra de legenda. |
CMFCCaptionBar::RemoveIcon | Remove o ícone da barra de legenda. |
CMFCCaptionBar::RemoveText | Remove o rótulo de texto da barra de legenda. |
CMFCCaptionBar::SetBitmap | Define a imagem de bitmap para a barra de legenda. |
CMFCCaptionBar::SetBorderSize | Define o tamanho da borda da barra de legenda. |
CMFCCaptionBar::SetButton | Define o botão para a barra de legenda. |
CMFCCaptionBar::SetButtonPressed | Especifica se o botão permanece ou não pressionado. |
CMFCCaptionBar::SetButtonToolTip | Define a dica de ferramenta para o botão. |
CMFCCaptionBar::SetFlatBorder | Define o estilo da borda da barra de legenda. |
CMFCCaptionBar::SetIcon | Define o ícone de uma barra de legenda. |
CMFCCaptionBar::SetImageToolTip | Define a dica de ferramenta para a imagem da barra de legenda. |
CMFCCaptionBar::SetMargin | Define a distância entre a borda do elemento de barra de legenda e a borda do controle de barra de legenda. |
CMFCCaptionBar::SetText | Define o rótulo de texto para a barra de legenda. |
Métodos protegidos
Nome | Descrição |
---|---|
CMFCCaptionBar::OnDrawBackground | Chamado pela estrutura para preencher o plano de fundo da barra de legenda. |
CMFCCaptionBar::OnDrawBorder | Chamado pela estrutura para desenhar a borda da barra de legenda. |
CMFCCaptionBar::OnDrawButton | Chamado pela estrutura para desenhar o botão da barra de legenda. |
CMFCCaptionBar::OnDrawImage | Chamado pela estrutura para desenhar a imagem da barra de legenda. |
CMFCCaptionBar::OnDrawText | Chamado pela estrutura para desenhar o texto da barra de legenda. |
Membros de dados
Nome | Descrição |
---|---|
CMFCCaptionBar::m_clrBarBackground | A cor da tela de fundo da barra de legenda. |
CMFCCaptionBar::m_clrBarBorder | A cor da borda da barra de legenda. |
CMFCCaptionBar::m_clrBarText | A cor do texto da barra de legendas. |
Comentários
Para criar uma barra de legendas, siga estas etapas:
Construa o objeto
CMFCCaptionBar
. Normalmente, a barra de legenda é adicionada a uma classe de janela do quadro.Chame o método CMFCCaptionBar::Create para criar o controle de barra de legenda e anexá-lo ao objeto
CMFCCaptionBar
.Chame CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon e CMFCCaptionBar::SetBitmap para definir os elementos da barra de legenda.
Ao definir o elemento de botão, você deve atribuir uma ID de comando ao botão. Quando o usuário clica no botão, a barra de legenda roteia as mensagens WM_COMMAND que têm essa ID para a janela do quadro pai.
A barra de legendas também pode funcionar no modo de barra de mensagens, o que emula a barra de mensagens que aparece em aplicativos do Microsoft Office 2007. No modo de barra de mensagens, a barra de legendas exibe um bitmap, uma mensagem e um botão (que normalmente abre uma caixa de diálogo). Você pode atribuir uma dica de ferramenta ao bitmap.
Para habilitar o modo de barra de mensagens, chame CMFCCaptionBar::Create e defina o quarto parâmetro (bIsMessageBarMode) como TRUE.
Exemplo
O exemplo a seguir demonstra como usar vários métodos na classe CMFCCaptionBar
. O exemplo mostra como criar o controle de barra de legenda, definir uma borda em 3D da barra de legenda, definir a distância, em pixels, entre a borda dos elementos da barra de legendas e a borda do controle da barra de legendas, definir o botão para a barra de legendas, definir a dica de ferramenta para o botão, definir o rótulo de texto para a barra de legenda, definir a imagem de bitmap para a barra de legendas e definir a dica de ferramenta para a imagem na barra de legendas. Este snippet de código faz parte do exemplo de Demonstração do MS Office 2007.
CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
// The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
{
TRACE0("Failed to create caption bar\n");
return FALSE;
}
m_wndMessageBar.SetFlatBorder(FALSE);
m_wndMessageBar.SetMargin(10);
m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));
m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);
m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));
return TRUE;
}
Hierarquia de herança
Requisitos
Cabeçalho: afxcaptionbar.h
CMFCCaptionBar::Create
Cria o controle de barra de legenda e o anexa ao objeto CMFCCaptionBar
.
BOOL Create(
DWORD dwStyle,
CWnd* pParentWnd,
UINT uID,
int nHeight=-1,
BOOL bIsMessageBarMode=FALSE);
Parâmetros
dwStyle
A combinação OR lógica dos estilos de barra de legenda.
pParentWnd
A janela pai do controle da barra de legenda.
uID
A ID do controle de barra de legenda.
nHeight
A altura, em pixels, do controle da barra de legenda. Se for -1, a altura será calculada de acordo com a altura do ícone, o texto e o botão exibidos pelo controle da barra de legenda.
bIsMessageBarMode
TRUE se a barra de legenda estiver no modo de barra de mensagens; FALSE caso contrário.
Valor de retorno
TRUE se o controle de barra de legenda for criado com êxito; FALSE caso contrário.
Comentários
Um objeto CMFCCaptionBar
é construído em duas etapas. Primeiro chame o construtor e, em seguida, chame o método Create
, que cria o controle do Windows e o anexa ao objeto CMFCCaptionBar
.
CMFCCaptionBar::DoesAllowDynInsertBefore
Indica se outro painel pode ser inserido dinamicamente entre a barra de legenda e seu quadro pai.
virtual BOOL DoesAllowDynInsertBefore() const;
Valor de retorno
Retorna FALSE, a menos que seja substituído.
Comentários
CMFCCaptionBar::EnableButton
Habilita ou desabilita o botão na barra de legenda.
void EnableButton(BOOL bEnable=TRUE);
Parâmetros
bEnable
[in] TRUE para habilitar o botão; FALSE para desabilitá-lo.
CMFCCaptionBar::GetAlignment
Retorna o alinhamento do elemento especificado.
BarElementAlignment GetAlignment(BarElement elem);
Parâmetros
elem
[in] Um elemento de barra de legenda para o qual recuperar o alinhamento.
Valor de retorno
O alinhamento de um elemento, como um botão, um bitmap, um texto ou um ícone.
Comentários
O alinhamento do elemento pode ser um dos valores a seguir:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::GetBorderSize
Retorna o tamanho da borda da barra de legenda.
int GetBorderSize() const;
Valor de retorno
O tamanho, em pixels, da borda.
CMFCCaptionBar::GetButtonRect
Recupera o retângulo delimitador do botão na barra de legendas.
CRect GetButtonRect() const;
Valor de retorno
Um objeto CRect
que contém as coordenadas do retângulo delimitador do botão na barra de legendas.
CMFCCaptionBar::GetMargin
Retorna a distância entre a borda dos elementos da barra de legenda e a borda do controle de barra de legenda.
int GetMargin() const;
Valor de retorno
A distância, em pixels, entre a borda dos elementos da barra de legenda e a borda do controle de barra de legenda.
CMFCCaptionBar::IsMessageBarMode
Especifica se a barra de legenda está no modo de barra de mensagens.
BOOL IsMessageBarMode() const;
Valor de retorno
TRUE se a barra de legenda estiver no modo de barra de mensagens; FALSE caso contrário.
Comentários
No modo de barra de mensagens, a barra de legenda exibe uma imagem com uma dica de ferramenta, um texto da mensagem e um botão.
CMFCCaptionBar::m_clrBarBackground
A cor da tela de fundo da barra de legenda.
COLORREF m_clrBarBackground
CMFCCaptionBar::m_clrBarBorder
A cor da borda da barra de legenda.
COLORREF m_clrBarBorder
CMFCCaptionBar::m_clrBarText
A cor do texto da barra de legendas.
COLORREF m_clrBarText
CMFCCaptionBar::OnDrawBackground
Chamado pela estrutura para preencher o plano de fundo da barra de legenda.
virtual void OnDrawBackground(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[in] Um ponteiro para o contexto do dispositivo da barra de legenda.
rect
[in] O retângulo delimitador a ser preenchido.
Comentários
O método OnDrawBackground
é chamado quando o plano de fundo da barra de legendas está prestes a ser preenchido. A implementação padrão preenche a tela de fundo usando a cor CMFCCaptionBar::m_clrBarBackground.
Substitua esse método em uma classe CMFCCaptionBar
derivada para personalizar a aparência da barra de legenda.
CMFCCaptionBar::OnDrawBorder
Chamado pela estrutura para desenhar a borda da barra de legenda.
virtual void OnDrawBorder(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[in] Um contexto de dispositivo usado para exibir as bordas.
rect
[in] O retângulo delimitador.
Comentários
Por padrão, as bordas têm o estilo plano.
Substitua esse método em uma classe CMFCCaptionBar
derivada para personalizar a aparência das bordas da barra de legenda.
CMFCCaptionBar::OnDrawButton
Chamado pela estrutura para desenhar o botão da barra de legenda.
virtual void OnDrawButton(
CDC* pDC,
CRect rect,
const CString& strButton,
BOOL bEnabled);
Parâmetros
pDC
[in] Um ponteiro para um contexto de dispositivo usado para exibir o botão.
rect
[in] O retângulo delimitador do botão.
strButton
[in] O rótulo de texto do botão.
bEnabled
[in] TRUE se o botão estiver habilitado; FALSE caso contrário.
Comentários
Substitua esse método em uma classe CMFCCaptionBar
derivada para personalizar a aparência do botão da barra de legenda.
CMFCCaptionBar::OnDrawImage
Chamado pela estrutura para desenhar a imagem da barra de legenda.
virtual void OnDrawImage(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[in] Um ponteiro para um contexto de dispositivo usado para exibir a imagem.
rect
[in] Especifica o retângulo delimitador da imagem.
Comentários
Substitua esse método em uma classe CMFCCaptionBar
derivada para personalizar a aparência da imagem.
CMFCCaptionBar::OnDrawText
Chamado pela estrutura para desenhar o texto da barra de legenda.
virtual void OnDrawText(
CDC* pDC,
CRect rect,
const CString& strText);
Parâmetros
pDC
[in] Um ponteiro para um contexto de dispositivo usado para exibir o botão.
rect
[in] O retângulo delimitador do texto.
strText
[in] A cadeia de caracteres de texto a ser exibida.
Comentários
A implementação padrão exibe o texto usando CDC::DrawText
e a cor CMFCCaptionBar::m_clrBarText.
Substitua esse método em uma classe CMFCCaptionBar
derivada para personalizar a aparência do texto da barra de legenda.
CMFCCaptionBar::RemoveBitmap
Remove a imagem bitmap da barra de legenda.
void RemoveBitmap();
CMFCCaptionBar::RemoveButton
Remove o botão da barra de legenda.
void RemoveButton();
Comentários
O layout dos elementos da barra de legendas é ajustado automaticamente.
CMFCCaptionBar::RemoveIcon
Remove o ícone da barra de legenda.
void RemoveIcon();
CMFCCaptionBar::RemoveText
Remove o rótulo de texto da barra de legenda.
void RemoveText();
CMFCCaptionBar::SetBitmap
Define a imagem de bitmap para a barra de legenda.
void SetBitmap(
HBITMAP hBitmap,
COLORREF clrTransparent,
BOOL bStretch=FALSE,
BarElementAlignment bmpAlignment=ALIGN_RIGHT);
void SetBitmap(
UINT uiBmpResID,
COLORREF clrTransparent,
BOOL bStretch=FALSE,
BarElementAlignment bmpAlignment=ALIGN_RIGHT);
Parâmetros
hBitmap
[in] O identificador para o bitmap a ser definido.
clrTransparent
[in] Um valor RGB que especifica a cor transparente do bitmap.
bStretch
[in] Se TRUE, o bitmap será alongado caso não se ajuste ao retângulo delimitador de imagem. Caso contrário, o bitmap não será alongado.
bmpAlignment
[in] O alinhamento do bitmap.
Comentários
Use esse método para definir um bitmap em uma barra de legenda.
O bitmap anterior é destruído automaticamente. Se a barra de legenda exibir um ícone porque você chamou o método CMFCCaptionBar::SetIcon, o bitmap não será exibido, a menos que você remova o ícone chamando CMFCCaptionBar::RemoveIcon.
O bitmap é alinhado conforme especificado pelo parâmetro bmpAlignment. Esse parâmetro pode usar um dos valores de BarElementAlignment
a seguir:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetBorderSize
Define o tamanho da borda da barra de legenda.
void SetBorderSize(int nSize);
Parâmetros
nSize
[in] O novo tamanho, em pixels, da borda da barra de legenda.
CMFCCaptionBar::SetButton
Define o botão para a barra de legenda.
void SetButton(
LPCTSTR lpszLabel,
UINT uiCmdUI,
BarElementAlignment btnAlignmnet=ALIGN_LEFT,
BOOL bHasDropDownArrow=TRUE);
Parâmetros
lpszLabel
O rótulo de comando do botão.
uiCmdUI
A ID de comando do botão.
btnAlignmnet
O alinhamento do botão.
bHasDropDownArrow
TRUE se o botão exibir uma seta suspensa, FALSE caso contrário.
CMFCCaptionBar::SetButtonPressed
Especifica se o botão permanece ou não pressionado.
void SetButtonPressed(BOOL bPresed=TRUE);
Parâmetros
bPresed
TRUE se o botão mantiver seu estado pressionado, caso contrário, FALSE.
CMFCCaptionBar::SetButtonToolTip
Define a dica de ferramenta para o botão.
void SetButtonToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parâmetros
lpszToolTip
[in] A legenda da dica de ferramenta.
lpszDescription
[in] A descrição da dica de ferramenta.
CMFCCaptionBar::SetFlatBorder
Define o estilo da borda da barra de legenda.
void SetFlatBorder(BOOL bFlat=TRUE);
Parâmetros
bFlat
[in] TRUE se a borda de uma barra de legenda for plana. FALSE se a borda for em 3D.
CMFCCaptionBar::SetIcon
Define o ícone de uma barra de legenda.
void SetIcon(
HICON hIcon,
BarElementAlignment iconAlignment=ALIGN_RIGHT);
Parâmetros
hIcon
[in] O identificador para o ícone a ser definido.
iconAlignment
[in] O alinhamento do ícone.
Comentários
As barras de legenda podem exibir ícones ou bitmaps. Consulte CMFCCaptionBar::SetBitmap para descobrir como exibir um bitmap. Se você definir um ícone e um bitmap, o ícone sempre será exibido. Chame CMFCCaptionBar::RemoveIcon para remover um ícone da barra de legenda.
O ícone é alinhado de acordo com o parâmetro iconAlignment. Pode ter um dos valores de BarElementAlignment
a seguir:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetImageToolTip
Define a dica de ferramenta para a imagem na barra de legenda.
void SetImageToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parâmetros
lpszToolTip
[in] O texto da dica de ferramenta.
lpszDescription
[in] A descrição da dica de ferramenta.
CMFCCaptionBar::SetMargin
Define a distância entre a borda do elemento de barra de legenda e a borda do controle de barra de legenda.
void SetMargin(int nMargin);
Parâmetros
nMargin
[in] A distância, em pixels, entre a borda dos elementos da barra de legenda e a borda do controle de barra de legenda.
CMFCCaptionBar::SetText
Define o rótulo de texto para a barra de legenda.
void SetText(
const CString& strText,
BarElementAlignment textAlignment=ALIGN_RIGHT);
Parâmetros
strText
[in] A cadeia de caracteres de texto a ser definida.
textAlignment
[in] O alinhamento de texto.
Comentários
O rótulo de texto é alinhado conforme especificado pelo parâmetro textAlignment. Pode ter um dos valores de BarElementAlignment
a seguir:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER