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.
Fornece a funcionalidade do controlo da barra de estado comum do Windows.
Sintaxe
class CStatusBarCtrl : public CWnd
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CStatusBarCtrl::CStatusBarCtrl | Constrói um CStatusBarCtrl objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| CStatusBarCtrl::Create | Cria um controlo de barra de estado e anexa-o a um CStatusBarCtrl objeto. |
| CStatusBarCtrl::CreateEx | Cria um controlo de barra de estado com os estilos Windows estendidos especificados e anexa-o a um CStatusBarCtrl objeto. |
| CStatusBarCtrl::D rawItem | É chamado quando um aspeto visual do controlo da barra de estado de saco do proprietário muda. |
| CStatusBarCtrl::GetBorders | Recupera as larguras atuais das bordas horizontal e vertical de um controlo de barra de estado. |
| CStatusBarCtrl::GetIcon | Recupera o ícone de uma peça (também conhecida como painel) no controlo atual da barra de estado. |
| CStatusBarCtrl::GetParts | Recupera a contagem das peças num controlo de barra de estado. |
| CStatusBarCtrl::GetRect | Recupera o retângulo delimitador de uma peça num controlo de barra de estado. |
| CStatusBarCtrl::GetText | Recupera o texto da parte dada de um controlo de barra de estado. |
| CStatusBarCtrl::GetTextLength | Recuperar o comprimento, em caracteres, do texto a partir da parte dada de um controlo de barra de estado. |
| CStatusBarCtrl::GetTipText | Recupera o texto da dica de ferramenta de um painel numa barra de estado. |
| CStatusBarCtrl::IsSimple | Verifica um controlo de janela de estado para determinar se está em modo simples. |
| CStatusBarCtrl::SetBkColor | Define a cor de fundo numa barra de estado. |
| CStatusBarCtrl::SetIcon | Define o ícone de um painel numa barra de estado. |
| CStatusBarCtrl::SetMinHeight | Define a altura mínima da área de desenho de um controlo de barra de estado. |
| CStatusBarCtrl::SetParts | Define o número de partes num controlo de barra de estado e a coordenada da aresta direita de cada peça. |
| CStatusBarCtrl::SetSimple | Especifica se um controlo de barra de estado apresenta texto simples ou se mostra todas as partes de controlo definidas por uma chamada anterior para SetParts. |
| CStatusBarCtrl::SetText | Define o texto na parte dada de um controlo de barra de estado. |
| CStatusBarCtrl::SetTipText | Define o texto da dica de ferramenta para um painel numa barra de estado. |
Observações
Um "controlo de barra de estado" é uma janela horizontal, geralmente exibida na parte inferior de uma janela principal, na qual uma aplicação pode apresentar vários tipos de informação de estado. O controlo da barra de estado pode ser dividido em partes para mostrar mais do que um tipo de informação.
Este controlo (e, portanto, a CStatusBarCtrl classe) está disponível apenas para programas a correr sob Windows 95/98 e Windows NT versão 3.51 e posteriores.
Para mais informações sobre a utilização CStatusBarCtrlde , veja Controlos e Utilização do CStatusBarCtrl.
Hierarquia de herança
CStatusBarCtrl
Requerimentos
Cabeçalho: afxcmn.h
CStatusBarCtrl::Create
Cria um controlo de barra de estado e anexa-o a um CStatusBarCtrl objeto.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parâmetros
dwStyle
Especifica o estilo do controlo da barra de estado. Aplique qualquer combinação de estilos de controlo de barra de estado listados em Estilos de Controlo Comuns no SDK do Windows. Este parâmetro deve incluir o estilo WS_CHILD. Deve também incluir o estilo WS_VISIBLE.
retângulo
Especifica o tamanho e a posição do controlo da barra de estado. Pode ser um objeto CRect ou uma estrutura RECT .
pParentWnd
Especifica a janela pai do controlo da barra de estado, normalmente um CDialog. Não pode ser NULL.
nID
Especifica o ID do controlo da barra de estado.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Observações
Constróis um A CStatusBarCtrl em dois passos. Primeiro, chama o construtor, e depois chama Create, que cria o controlo da barra de estado e o anexa ao CStatusBarCtrl objeto.
A posição padrão de uma janela de estado está na parte inferior da janela pai, mas podes especificar o estilo CCS_TOP para que apareça no topo da área cliente da janela principal. Pode especificar o estilo SBARS_SIZEGRIP para incluir uma pega de tamanho no extremo direito da janela de estado. Não é recomendado combinar os estilos CCS_TOP e SBARS_SIZEGRIP, porque a pega de dimensionamento resultante não é funcional, mesmo que o sistema a desenhe na janela de estado.
Para criar uma barra de estado com estilos de janelas estendidos, chame CStatusBarCtrl::CreateEx em vez de Create.
Example
VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));
CStatusBarCtrl::CreateEx
Cria um controlo (uma janela filha) e associa-o ao CStatusBarCtrl objeto.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parâmetros
dwExStyle
Especifica o estilo estendido do controlo que está a ser criado. Para uma lista de estilos estendidos do Windows, consulte o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.
dwStyle
Especifica o estilo do controlo da barra de estado. Aplique qualquer combinação de estilos de controlo de barra de estado listados em Estilos de Controlo Comuns no SDK do Windows. Este parâmetro deve incluir o estilo WS_CHILD. Deve também incluir o estilo WS_VISIBLE.
retângulo
Uma referência a uma estrutura RECT que descreve o tamanho e a posição da janela a criar, em coordenadas cliente de pParentWnd.
pParentWnd
Um apontador para a janela que é o pai do controlo.
nID
O ID da janela criança do controlo.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Use CreateEx em vez de Create para aplicar estilos estendidos do Windows, especificados pelo prefácio de estilo estendido do Windows WS_EX_.
CStatusBarCtrl::CStatusBarCtrl
Constrói um CStatusBarCtrl objeto.
CStatusBarCtrl();
CStatusBarCtrl::D rawItem
Chamada pelo framework quando um aspeto visual do controlo de barra de estado de saqueio do proprietário muda.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parâmetros
lpDrawItemStruct
Um ponteiro longo para uma estrutura DRAWITEMSTRUCT que contém informação sobre o tipo de desenho necessário.
Observações
O itemAction elemento da DRAWITEMSTRUCT estrutura define a ação de desenho que deve ser realizada.
Por defeito, esta função membro não faz nada. Substitua esta função de membro para implementar desenho para um objeto proprietário-desenho CStatusBarCtrl .
A aplicação deve restaurar todos os objetos da interface do dispositivo gráfico (GDI) selecionados para o contexto de visualização fornecido em lpDrawItemStruct antes de esta função membro terminar.
CStatusBarCtrl::GetBorders
Recupera as larguras atuais do controlo da barra de estado das bordas horizontal e vertical e do espaço entre retângulos.
BOOL GetBorders(int* pBorders) const;
BOOL GetBorders(
int& nHorz,
int& nVert,
int& nSpacing) const;
Parâmetros
pBorders
Endereço de um array inteiro com três elementos. O primeiro elemento recebe a largura da borda horizontal, o segundo recebe a largura da borda vertical e o terceiro recebe a largura da borda entre retângulos.
nHorz
Referência a um inteiro que recebe a largura da borda horizontal.
nVert
Referência a um inteiro que recebe a largura da borda vertical.
nEspaçamento
Referência a um inteiro que recebe a largura da borda entre retângulos.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Observações
Estas bordas determinam o espaçamento entre a aresta exterior do controlo e os retângulos dentro do controlo que contêm texto.
Example
RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));
int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));
CStatusBarCtrl::GetIcon
Recupera o ícone de uma peça (também conhecida como painel) no controlo atual da barra de estado.
HICON GetIcon(int iPart) const;
Parâmetros
iPart
[dentro] O índice em base zero da parte que contém o ícone a recuperar. Se este parâmetro for -1, assume-se que a barra de estado é uma simples barra de estado de modo.
Valor de retorno
A alça do ícone se o método for bem-sucedido; caso contrário, NULL.
Observações
Este método envia a mensagem SB_GETICON , que é descrita no SDK do Windows.
Um controlo de barra de estado consiste numa linha de painéis de saída de texto, também conhecidos como partes. Para mais informações sobre a barra de estado, consulte Implementação da Barra de Estado no MFC e Definir o Modo de um Objeto CStatusBarCtrl.
Example
O primeiro exemplo de código define uma variável, m_statusBar, que é usada para aceder ao controlo atual da barra de estado. Esta variável é usada no exemplo seguinte.
public:
CStatusBarCtrl m_statusBar;
O próximo exemplo de código copia um ícone para dois painéis do controlo atual da barra de estado. Numa secção anterior do exemplo de código, criámos um controlo de barra de estado com três painéis e depois adicionámos um ícone ao primeiro painel. Este exemplo recupera o ícone do primeiro painel e depois adiciona-o ao segundo e terceiro painel.
// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);
CStatusBarCtrl::GetParts
Recupera a contagem das peças num controlo de barra de estado.
int GetParts(
int nParts,
int* pParts) const;
Parâmetros
nPartes
Número de peças para recuperar coordenadas. Se este parâmetro for maior do que o número de partes no controlo, a mensagem recupera coordenadas apenas para as partes existentes.
pParts
Endereço de um array inteiro com o mesmo número de elementos que o número de partes especificado por nParts. Cada elemento no array recebe a coordenada cliente da aresta direita da peça correspondente. Se um elemento for definido para -1, a posição da aresta direita dessa parte estende-se até à aresta direita da barra de estado.
Valor de retorno
O número de peças no controlo se for bem-sucedido, ou zero caso contrário.
Observações
Esta função membro também recupera a coordenada da aresta direita do número dado de partes.
Example
int pParts[2];
int nParts = m_wndSBC.GetParts(2, pParts);
CStatusBarCtrl::GetRect
Recupera o retângulo delimitador de uma peça num controlo de barra de estado.
BOOL GetRect(
int nPane,
LPRECT lpRect) const;
Parâmetros
nPane
Índice de base zero da parte cujo retângulo delimitador deve ser recuperado.
lpRect
Endereçamento de uma estrutura RECT que recebe o retângulo delimitador.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Example
CRect rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
CStatusBarCtrl::GetText
Recupera o texto da parte dada de um controlo de barra de estado.
CString GetText(
int nPane,
int* pType = NULL) const;
int GetText(
LPCTSTR lpszText,
int nPane,
int* pType = NULL) const;
Parâmetros
lpszText
Endereço do buffer que recebe a mensagem. Este parâmetro é uma cadeia terminada por nulo.
nPane
Índice em base zero da parte de onde se deve retirar texto.
pType
Apontar para um inteiro que recebe a informação do tipo. O tipo pode ser um destes valores:
0 O texto é desenhado com uma borda para parecer inferior ao plano da barra de estado.
SBT_NOBORDERS O texto é desenhado sem bordas.
SBT_POPOUT O texto é desenhado com uma borda para parecer mais alta do que o plano da barra de estado.
SBT_OWNERDRAW Se o texto tiver o tipo de desenho SBT_OWNERDRAW, o pType recebe esta mensagem e devolve o valor de 32 bits associado ao texto em vez do comprimento e do tipo de operação.
Valor de retorno
O comprimento, em caracteres, do texto ou de um CString contendo o texto atual.
Example
int nType;
TCHAR *pszPaneOneText;
pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
delete pszPaneOneText;
CStatusBarCtrl::GetTextLength
Recupera o comprimento, em caracteres, do texto a partir da parte dada de um controlo de barra de estado.
int GetTextLength(
int nPane,
int* pType = NULL) const;
Parâmetros
nPane
Índice em base zero da parte de onde se deve retirar texto.
pType
Apontar para um inteiro que recebe a informação do tipo. O tipo pode ser um destes valores:
0 O texto é desenhado com uma borda para parecer inferior ao plano da barra de estado.
SBT_NOBORDERS O texto é desenhado sem bordas.
SBT_OWNERDRAW O texto é desenhado pela janela principal.
SBT_POPOUT O texto é desenhado com uma borda para parecer mais alta do que o plano da barra de estado.
Valor de retorno
O comprimento, em caracteres, do texto.
Example
int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
CStatusBarCtrl::GetTipText
Recupera o texto da dica de ferramenta de um painel numa barra de estado.
CString GetTipText(int nPane) const;
Parâmetros
nPane
O índice em base zero do painel de barra de estado para receber o texto da dica de ferramenta.
Valor de retorno
Um objeto CString contendo o texto a ser usado na dica de ferramenta.
Observações
Esta função membro implementa o comportamento da SB_GETTIPTEXT de mensagens Win32, conforme descrito no SDK do Windows.
Example
CString csPane0TipText = m_wndSBC.GetTipText(0);
CStatusBarCtrl::IsSimple
Verifica um controlo de janela de estado para determinar se está em modo simples.
BOOL IsSimple() const;
Valor de retorno
Não nulo se o controlo da janela de estado estiver em modo simples; caso contrário, zero.
Observações
Esta função membro implementa o comportamento da SB_ISSIMPLE de mensagens Win32, conforme descrito no SDK do Windows.
CStatusBarCtrl::SetBkColor
Define a cor de fundo numa barra de estado.
COLORREF SetBkColor(COLORREF cr);
Parâmetros
cr
COLORREF que especifica a nova cor de fundo. Especifique o valor CLR_DEFAULT para fazer com que a barra de estado use a cor de fundo predefinida.
Valor de retorno
Um valor COLORREF que representa a cor de fundo padrão anterior.
Observações
Esta função membro implementa o comportamento da SB_SETBKCOLOR de mensagens Win32, conforme descrito no SDK do Windows.
Example
m_wndSBC.SetBkColor(RGB(0, 0, 250));
HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));
CStatusBarCtrl::SetIcon
Define o ícone de um painel numa barra de estado.
BOOL SetIcon(
int nPane,
HICON hIcon);
Parâmetros
nPane
O índice em base zero do painel que receberá o ícone. Se este parâmetro for -1, assume-se que a barra de estado é uma barra de estado simples.
hIcon
Handle para o ícone a definir. Se este valor for NULL, o ícone é removido da peça.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Observações
Esta função membro implementa o comportamento da SB_SETICON de mensagens Win32, conforme descrito no SDK do Windows.
Example
Veja o exemplo de CStatusBarCtrl::SetBkColor.
CStatusBarCtrl::SetMinHeight
Define a altura mínima da área de desenho de um controlo de barra de estado.
void SetMinHeight(int nMin);
Parâmetros
nMin
Altura mínima, em pixels, do controlo.
Observações
A altura mínima é a soma de nMin e o dobro da largura, em píxeis, da borda vertical do controlo da barra de estado.
Example
m_wndSBC.SetMinHeight(40);
CStatusBarCtrl::SetParts
Define o número de partes num controlo de barra de estado e a coordenada da aresta direita de cada peça.
BOOL SetParts(
int nParts,
int* pWidths);
Parâmetros
nPartes
Número de peças para montar. O número de peças não pode ser superior a 255.
PLarguras
Endereço de um array inteiro com o mesmo número de elementos que as partes especificadas por nParts. Cada elemento do array especifica a posição, em coordenadas do cliente, da aresta direita da peça correspondente. Se um elemento for - 1, a posição da aresta direita dessa parte estende-se até à aresta direita do controlo.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Example
const int c_nParts = 4;
CRect rect;
m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
-1};
VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));
CStatusBarCtrl::SetSimple
Especifica se um controlo de barra de estado apresenta texto simples ou se mostra todas as partes de controlo definidas por uma chamada anterior ao SetParts.
BOOL SetSimple(BOOL bSimple = TRUE);
Parâmetros
bSimple
[dentro] Bandeira do tipo ecrã. Se este parâmetro for VERDADEIRO, o controlo mostra texto simples; se for FALSO, mostra várias partes.
Valor de retorno
Sempre devolve 0.
Observações
Se a sua aplicação alterar o controlo da barra de estado de não simples para simples, ou vice-versa, o sistema redesenha imediatamente o controlo.
CStatusBarCtrl::SetText
Define o texto na parte dada de um controlo de barra de estado.
BOOL SetText(
LPCTSTR lpszText,
int nPane,
int nType);
Parâmetros
lpszText
Endereço de uma cadeia terminada nula que especifica o texto a definir. Se o nType for SBT_OWNERDRAW, o lpszText representa 32 bits de dados.
nPane
Índice base zero da peça a definir. Se este valor for 255, assume-se que o controlo da barra de estado é um controlo simples com apenas uma parte.
nType
Tipo de operação de desenho. Veja SB_SETTEXT mensagem para uma lista de valores possíveis.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, zero.
Observações
A mensagem invalida a parte do controlo que foi alterada, fazendo com que o novo texto seja exibido quando o controlo recebe novamente a mensagem WM_PAINT.
Example
VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));
CStatusBarCtrl::SetTipText
Define o texto da dica de ferramenta para um painel numa barra de estado.
void SetTipText(
int nPane,
LPCTSTR pszTipText);
Parâmetros
nPane
O índice em base zero do painel de barra de estado para receber o texto da dica de ferramenta.
pszTipText
Um apontador para uma string que contém o texto da tooltip.
Observações
Esta função membro implementa o comportamento da SB_SETTIPTEXT de mensagens Win32, conforme descrito no SDK do Windows.
Example
m_wndSBC.SetTipText(0, _T("This is Pane 0"));