Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Um CMFCCaptionBar objeto é uma barra de controlo que pode mostrar três elementos: um botão, um rótulo de texto e um bitmap. Só pode exibir um elemento de cada tipo de cada vez. Podes alinhar cada elemento com as bordas esquerda ou direita do controlo ou ao centro. Também podes aplicar um estilo plano ou 3D nas bordas superior e inferior da barra de legendas.
Sintaxe
class CMFCCaptionBar : public CPane
Membros
Métodos Públicos
| Nome | Description |
|---|---|
| CMFCCaptionBar::Create | Cria o controlo da barra de legendas e anexa-o ao CMFCCaptionBar objeto. |
| CMFCCaptionBar::D oesAllowDynInsertBefore | Indica se outro painel pode ser inserido dinamicamente entre a barra da legenda e o seu quadro principal. (Sobrepõe CBasePane::D oesAlpermitDynInsertBefore.) |
| CMFCCaptionBar::EnableButton | Ativa ou desativa o botão na barra de legendas. |
| CMFCCaptionBar::GetAlignment | Devolve o alinhamento do elemento especificado. |
| CMFCCaptionBar::GetBorderSize | Devolve o tamanho da borda da barra de legendas. |
| CMFCCaptionBar::GetButtonRect | Recupera o retângulo delimitador do botão na barra de legendas. |
| CMFCCaptionBar::GetMargin | Devolve a distância entre a aresta dos elementos da barra de legendas e a aresta do controlo da barra de legendas. |
| CMFCCaptionBar::IsMessageBarMode | Especifica se a barra de legendas está no modo de barra de mensagens. |
| CMFCCaptionBar::RemoveBitmap | Remove a imagem bitmap da barra de legendas. |
| CMFCCaptionBar::RemoveButton | Remove o botão da barra de legendas. |
| CMFCCaptionBar::RemoveIcon | Remove o ícone da barra de legendas. |
| CMFCCaptionBar::RemoveText | Remove a etiqueta do texto da barra de legendas. |
| CMFCCaptionBar::SetBitmap | Define a imagem bitmap para a barra de legendas. |
| CMFCCaptionBar::SetBorderSize | Define o tamanho da borda da barra de legendas. |
| CMFCCaptionBar::SetButton | Define o botão para a barra de legendas. |
| CMFCCaptionBar::SetButtonPressed | Especifica se o botão permanece pressionado. |
| CMFCCaptionBar::SetButtonToolTip | Define a dica de ferramenta para o botão. |
| CMFCCaptionBar::SetFlatBorder | Define o estilo da borda da barra de legendas. |
| CMFCCaptionBar::SetIcon | Define o ícone para uma barra de legendas. |
| CMFCCaptionBar::SetImageToolTip | Define a dica da imagem para a barra de legendas. |
| CMFCCaptionBar::SetMargem | Define a distância entre a borda do elemento da barra da legenda e a borda do controlo da barra da legenda. |
| CMFCCaptionBar::SetText | Define o rótulo do texto para a barra de legendas. |
Métodos Protegidos
| Nome | Description |
|---|---|
| CMFCCaptionBar::OnDrawBackground | Chamado pelo framework para preencher o fundo da barra de legendas. |
| CMFCCaptionBar::OnDrawBorder | Chamado pela estrutura para desenhar a borda da barra de legendas. |
| CMFCCaptionBar::OnDrawButton | Chamado pelo framework para desenhar o botão da barra de legendas. |
| CMFCCaptionBar::OnDrawImage | Chamado pelo framework para desenhar a imagem da barra de legendas. |
| CMFCCaptionBar::OnDrawText | Chamado pelo framework para desenhar o texto da barra da legenda. |
Membros de Dados
| Nome | Description |
|---|---|
| CMFCCaptionBar::m_clrBarBackground | A cor de fundo da barra de legendas. |
| CMFCCaptionBar::m_clrBarBorder | A cor da borda da barra de legendas. |
| CMFCCaptionBar::m_clrBarText | A cor do texto da barra da legenda. |
Observações
Para criar uma barra de legendas, siga estes passos:
Constrói o
CMFCCaptionBarobjeto. Normalmente, adicionarias a barra de legendas a uma classe de janela de moldura.Chame o método CMFCCaptionBar::Create para criar o controlo da barra de legendas e anexá-lo ao
CMFCCaptionBarobjeto.Ligue para CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon e CMFCCaptionBar::SetBitmap para definir os elementos da barra de legendas.
Quando defines o elemento do botão, deves atribuir um ID de comando ao botão. Quando o utilizador clica no botão, a barra de legendas encaminha as WM_COMMAND mensagens com este ID para a janela da moldura principal.
A barra de legendas também pode funcionar em modo barra de mensagens, que emula a barra de mensagens que aparece nas aplicações do Microsoft Office 2007. No modo barra de mensagens, a barra de legendas mostra um bitmap, uma mensagem e um botão (que normalmente abre uma caixa de diálogo). Podes atribuir uma dica de ferramenta ao bitmap.
Para ativar o modo barra de mensagens, chame CMFCCaptionBar::Create e defina o quarto parâmetro (bIsMessageBarMode) para TRUE.
Example
O exemplo seguinte demonstra como usar vários métodos na CMFCCaptionBar aula. O exemplo mostra como criar o controlo da barra de legendas, definir uma borda 3D da barra de legendas, definir a distância, em pixels, entre a borda dos elementos da barra de legendas e a borda do controlo da barra de legendas, definir o botão para a barra de legendas, definir a dica de ferramenta para o botão, definir a etiqueta de texto para a barra de legendas, Define a imagem bitmap para a barra de legendas e define a dica de ferramenta para a imagem na barra de legendas. Este excerto 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
Requerimentos
Cabeçalho: afxcaptionbar.h
CMFCCaptionBar::Create
Cria o controlo da barra de legendas e anexa-o ao CMFCCaptionBar objeto.
BOOL Create(
DWORD dwStyle,
CWnd* pParentWnd,
UINT uID,
int nHeight=-1,
BOOL bIsMessageBarMode=FALSE);
Parâmetros
dwStyle
A combinação lógica de OR dos estilos de barra de legendas.
pParentWnd
A janela principal da barra de legendas controla.
uID
O ID do controlo da barra de legendas.
nAltura
A altura, em pixels, do controlo da barra de legendas. Se for -1, a altura é calculada de acordo com a altura do ícone, do texto e do botão que o controlo da barra de legendas apresenta.
bIsMessageBarMode
TRUE se a barra de legendas estiver no modo de barra de mensagens; FALSO, caso contrário.
Valor de retorno
TRUE se o controlo da barra de legendas for criado com sucesso; FALSO, caso contrário.
Observações
Constroem um CMFCCaptionBar objeto em dois passos. Primeiro chamas o construtor, depois chamas o Create método, que cria o controlo do Windows e o anexa ao CMFCCaptionBar objeto.
CMFCCaptionBar::D oesAllowDynInsertBefore
Indica se outro painel pode ser inserido dinamicamente entre a barra da legenda e o seu quadro principal.
virtual BOOL DoesAllowDynInsertBefore() const;
Valor de retorno
Retorna FALSO, a menos que seja anulado.
Observações
CMFCCaptionBar::EnableButton
Ativa ou desativa o botão na barra de legendas.
void EnableButton(BOOL bEnable=TRUE);
Parâmetros
bEnable
[dentro] TRUE para ativar o botão, FALSE para desativar o botão.
CMFCCaptionBar::GetAlignment
Devolve o alinhamento do elemento especificado.
BarElementAlignment GetAlignment(BarElement elem);
Parâmetros
Elem
[dentro] Um elemento de barra de legenda para recuperar o alinhamento.
Valor de retorno
O alinhamento de um elemento, como um botão, um bitmap, texto ou um ícone.
Observações
O alinhamento do elemento pode ser um dos seguintes valores:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::GetBorderSize
Devolve o tamanho da borda da barra de legendas.
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 CRect objeto que contém as coordenadas do retângulo delimitador do botão na barra de legenda.
CMFCCaptionBar::GetMargin
Devolve a distância entre a aresta dos elementos da barra de legendas e a aresta do controlo da barra de legendas.
int GetMargin() const;
Valor de retorno
A distância, em píxeis, entre a borda dos elementos da barra de legenda e a borda do controlo da barra de legendas.
CMFCCaptionBar::IsMessageBarMode
Especifica se a barra de legendas está no modo de barra de mensagens.
BOOL IsMessageBarMode() const;
Valor de retorno
TRUE se a barra de legendas estiver no modo de barra de mensagens; FALSO, caso contrário.
Observações
No modo barra de mensagens, a barra de legendas mostra uma imagem com uma dica de ferramenta, um texto de mensagem e um botão.
CMFCCaptionBar::m_clrBarBackground
A cor de fundo da barra de legendas.
COLORREF m_clrBarBackground
CMFCCaptionBar::m_clrBarBorder
A cor da borda da barra de legendas.
COLORREF m_clrBarBorder
CMFCCaptionBar::m_clrBarText
A cor do texto da barra da legenda.
COLORREF m_clrBarText
CMFCCaptionBar::OnDrawBackground
Chamado pelo framework para preencher o fundo da barra de legendas.
virtual void OnDrawBackground(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[dentro] Um apontador para o contexto do dispositivo na barra de legendas.
retângulo
[dentro] O retângulo delimitador para preencher.
Observações
O OnDrawBackground método é chamado quando o fundo da barra de legendas está prestes a ser preenchido. A implementação padrão preenche o fundo usando a cor CMFCCaptionBar::m_clrBarBackground .
Substitua este método numa CMFCCaptionBar classe derivada para personalizar a aparência da barra de legendas.
CMFCCaptionBar::OnDrawBorder
Chamado pela estrutura para desenhar a borda da barra de legendas.
virtual void OnDrawBorder(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[dentro] Um contexto de dispositivo que é usado para mostrar as bordas.
retângulo
[dentro] O retângulo delimitador.
Observações
Por defeito, as bordas têm o estilo plano.
Substitua este método numa CMFCCaptionBar classe derivada para personalizar a aparência das bordas da barra da legenda.
CMFCCaptionBar::OnDrawButton
Chamado pelo framework para desenhar o botão da barra de legendas.
virtual void OnDrawButton(
CDC* pDC,
CRect rect,
const CString& strButton,
BOOL bEnabled);
Parâmetros
pDC
[dentro] Um apontador para o contexto de um dispositivo que é usado para mostrar o botão.
retângulo
[dentro] O retângulo delimitador do botão.
strButton
[dentro] A etiqueta de texto do botão.
bEnabled
[dentro] TRUE se o botão estiver ativado; FALSO, caso contrário.
Observações
Substitua este método numa CMFCCaptionBar classe derivada para personalizar a aparência do botão da barra de legendas.
CMFCCaptionBar::OnDrawImage
Chamado pelo framework para desenhar a imagem da barra de legendas.
virtual void OnDrawImage(
CDC* pDC,
CRect rect);
Parâmetros
pDC
[dentro] Um apontador para o contexto de um dispositivo que é usado para mostrar a imagem.
retângulo
[dentro] Especifica o retângulo delimitador da imagem.
Observações
Substitua este método numa CMFCCaptionBar classe derivada para personalizar a aparência da imagem.
CMFCCaptionBar::OnDrawText
Chamado pelo framework para desenhar o texto da barra da legenda.
virtual void OnDrawText(
CDC* pDC,
CRect rect,
const CString& strText);
Parâmetros
pDC
[dentro] Um apontador para o contexto de um dispositivo que é usado para mostrar o botão.
retângulo
[dentro] O retângulo delimitador do texto.
strText
[dentro] A cadeia de texto para mostrar.
Observações
A implementação padrão mostra o texto usando CDC::DrawText uma cor CMFCCaptionBar::m_clrBarText .
Substitua este método numa CMFCCaptionBar classe derivada para personalizar a aparência do texto da barra da legenda.
CMFCCaptionBar::RemoveBitmap
Remove a imagem bitmap da barra de legendas.
void RemoveBitmap();
CMFCCaptionBar::RemoveButton
Remove o botão da barra de legendas.
void RemoveButton();
Observações
A disposição dos elementos da barra das legendas é ajustada automaticamente.
CMFCCaptionBar::RemoveIcon
Remove o ícone da barra de legendas.
void RemoveIcon();
CMFCCaptionBar::RemoveText
Remove a etiqueta do texto da barra de legendas.
void RemoveText();
CMFCCaptionBar::SetBitmap
Define a imagem bitmap para a barra de legendas.
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
[dentro] O handle para o bitmap para definir.
clrTransparent
[dentro] Um valor RGB que especifica a cor transparente do bitmap.
bStretch
[dentro] Se for TRUE, o bitmap é esticado se não se ajustar ao retângulo delimitador da imagem. Caso contrário, o bitmap não é esticado.
bmpAlignment
[dentro] O alinhamento do bitmap.
Observações
Use este método para definir um bitmap numa barra de legendas.
O bitmap anterior é destruído automaticamente. Se a barra de legendas mostrar um ícone porque chamou o método CMFCCaptionBar::SetIcon , o bitmap não será exibido a menos que remova o ícone chamando CMFCCaptionBar::RemoveIcon.
O bitmap está alinhado conforme especificado pelo parâmetro bmpAlignment . Este parâmetro pode ser um dos seguintes BarElementAlignment valores:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetBorderSize
Define o tamanho da borda da barra de legendas.
void SetBorderSize(int nSize);
Parâmetros
nTamanho
[dentro] O novo tamanho, em pixels, da borda da barra de legendas.
CMFCCaptionBar::SetButton
Define o botão para a barra de legendas.
void SetButton(
LPCTSTR lpszLabel,
UINT uiCmdUI,
BarElementAlignment btnAlignmnet=ALIGN_LEFT,
BOOL bHasDropDownArrow=TRUE);
Parâmetros
lpszLabel
A etiqueta de comando do botão.
uiCmdUI
O ID do comando do botão.
btnAlignmnet
O alinhamento do botão.
bHasDropDownArrow
TRUE se o botão mostrar uma seta suspensa, FALSE caso contrário.
CMFCCaptionBar::SetButtonPressed
Especifica se o botão permanece pressionado.
void SetButtonPressed(BOOL bPresed=TRUE);
Parâmetros
bPresed
TRUE se o botão mantiver o estado pressionado, FALSE caso contrário.
CMFCCaptionBar::SetButtonToolTip
Define a dica de ferramenta para o botão.
void SetButtonToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parâmetros
lpszToolTip
[dentro] A legenda da dica de ferramenta.
lpszDescription
[dentro] A descrição da dica de ferramenta.
CMFCCaptionBar::SetFlatBorder
Define o estilo da borda da barra de legendas.
void SetFlatBorder(BOOL bFlat=TRUE);
Parâmetros
bFlat
[dentro] VERDADE se a borda de uma barra de legendas for plana. FALSE se a fronteira for 3D.
CMFCCaptionBar::SetIcon
Define o ícone para uma barra de legendas.
void SetIcon(
HICON hIcon,
BarElementAlignment iconAlignment=ALIGN_RIGHT);
Parâmetros
hIcon
[dentro] A alavanca do ícone para definir.
IconAlignment
[dentro] O alinhamento do ícone.
Observações
As barras de legendas podem mostrar ícones ou bitmaps. Consulte CMFCCaptionBar::SetBitmap para saber como mostrar um bitmap. Se definires tanto um ícone como um bitmap, o ícone é sempre exibido. Liga para CMFCCaptionBar::RemoveIcon para remover um ícone da barra de legendas.
O ícone está alinhado de acordo com o parâmetro iconAlignment . Pode ser um dos seguintes BarElementAlignment valores:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER
CMFCCaptionBar::SetImageToolTip
Define a dica da imagem na barra de legendas.
void SetImageToolTip(
LPCTSTR lpszToolTip,
LPCTSTR lpszDescription=NULL);
Parâmetros
lpszToolTip
[dentro] O texto da dica de informação.
lpszDescription
[dentro] A descrição da dica de ferramenta.
CMFCCaptionBar::SetMargem
Define a distância entre a borda do elemento da barra da legenda e a borda do controlo da barra da legenda.
void SetMargin(int nMargin);
Parâmetros
nMargin
[dentro] A distância, em píxeis, entre a borda dos elementos da barra de legenda e a borda do controlo da barra de legendas.
CMFCCaptionBar::SetText
Define o rótulo do texto para a barra de legendas.
void SetText(
const CString& strText,
BarElementAlignment textAlignment=ALIGN_RIGHT);
Parâmetros
strText
[dentro] A cadeia de texto para definir.
texto Alinhamento
[dentro] O alinhamento do texto.
Observações
O rótulo do texto está alinhado conforme especificado pelo parâmetro textAlignment . Pode ser um dos seguintes BarElementAlignment valores:
ALIGN_INVALID
ALIGN_LEFT
ALIGN_RIGHT
ALIGN_CENTER