Classe CMFCStatusBar
A classe CMFCStatusBar
implementa uma barra de status semelhante à classe CStatusBar
. No entanto, a classe CMFCStatusBar
tem recursos não oferecidos pela classe CStatusBar
, como a capacidade de exibir imagens, animações e barras de progresso; e a capacidade de responder a cliques duplos do mouse.
Para obter mais detalhes, confira o código-fonte localizado na pasta VC\atlmfc\src\mfc de sua instalação do Visual Studio.
Sintaxe
class CMFCStatusBar : public CPane
Membros
Métodos públicos
Nome | Descrição |
---|---|
CMFCStatusBar::CalcFixedLayout | (Substitui CBasePane::CalcFixedLayout.) |
CMFCStatusBar::CommandToIndex | |
CMFCStatusBar::Create | Cria uma barra de controle e a anexa ao objeto CPane. (Substitui CPane::Create.) |
CMFCStatusBar::CreateEx | Cria uma barra de controle e a anexa ao objeto CPane. (Substitui CPane::CreateEx.) |
CMFCStatusBar::DoesAllowDynInsertBefore | Determina se outro painel pode ser inserido dinamicamente entre esse painel e o quadro pai. (Substitui CBasePane::DoesAllowDynInsertBefore.) |
CMFCStatusBar::EnablePaneDoubleClick | Habilita ou desabilita o tratamento de cliques duplos do mouse na barra de status. |
CMFCStatusBar::EnablePaneProgressBar | Exibe uma barra de progresso no painel especificado. |
CMFCStatusBar::GetCount | Retorna o número de painéis na barra de status. |
CMFCStatusBar::GetDrawExtendedArea | |
CMFCStatusBar::GetExtendedArea | |
CMFCStatusBar::GetItemID | |
CMFCStatusBar::GetItemRect | |
CMFCStatusBar::GetPaneInfo | |
CMFCStatusBar::GetPaneProgress | |
CMFCStatusBar::GetPaneStyle | Retorna o estilo do painel. (Substitui CBasePane::GetPaneStyle.) |
CMFCStatusBar::GetPaneText | |
CMFCStatusBar::GetPaneWidth | Retorna a largura, em pixels, do painel especificado da barra de status. |
CMFCStatusBar::GetTipText | Retorna o texto da dica de ferramenta para o painel especificado da barra de status. |
CMFCStatusBar::InvalidatePaneContent | Invalida o painel especificado e redesenha seu conteúdo. |
CMFCStatusBar::PreCreateWindow | Chamado pela estrutura antes da criação da janela do Windows anexada a esse objeto CWnd . (Substitui CWnd::P reCreateWindow.) |
CMFCStatusBar::SetDrawExtendedArea | |
CMFCStatusBar::SetIndicators | |
CMFCStatusBar::SetPaneAnimation | Aplica uma animação ao painel especificado. |
CMFCStatusBar::SetPaneBackgroundColor | Define a cor da tela de fundo para o painel especificado da barra de status. |
CMFCStatusBar::SetPaneIcon | Define o ícone de indicador para o painel especificado da barra de status. |
CMFCStatusBar::SetPaneInfo | |
CMFCStatusBar::SetPaneProgress | Define o progresso atual da barra de progresso para o painel especificado da barra de status. |
CMFCStatusBar::SetPaneStyle | Define o estilo do painel. (Substitui CBasePane::SetPaneStyle.) |
CMFCStatusBar::SetPaneText | |
CMFCStatusBar::SetPaneTextColor | Define a cor do texto para o painel especificado da barra de status. |
CMFCStatusBar::SetPaneWidth | Define a largura, em pixels, do painel especificado da barra de status. |
CMFCStatusBar::SetTipText | Define o texto da dica de ferramenta para o painel especificado da barra de status. |
Métodos protegidos
Nome | Descrição |
---|---|
CMFCStatusBar::OnDrawPane | Chamado pela estrutura ao redesenhar o painel da barra de status. |
Comentários
O diagrama a seguir mostra uma figura da barra de status do aplicativo de exemplo da Demonstração da Barra de Status.
Exemplos
O exemplo a seguir demonstra as variáveis locais que o aplicativo usa para chamar vários métodos na classe CMFCStatusBar
. Essas variáveis são declaradas em StatusBarDemoView.h. O quadro principal é declarado em MainFrm.h, o documento é declarado em StatusBarDemoDoc.h e o modo de exibição é declarado em StatusBarDemoView.h. Este snippet de código faz parte do exemplo de Demonstração da Barra de Status.
int m_nProgressCurr;
BOOL m_bInProgress;
CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;
CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;
O exemplo a seguir demonstra como obter uma referência ao objeto CMFCStatusBar
introduzindo o método GetStatusBar
em MainFrm.h e chamando esse método do método GetStatusBar
em StatusBarDemoView.h. Este snippet de código faz parte do exemplo de Demonstração da Barra de Status.
// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}
O exemplo a seguir demonstra como chamar vários métodos na classe CMFCStatusBar
em StatusBarDemoView.cpp. As constantes são declaradas em MainFrm.h. O exemplo mostra como definir o ícone, definir o texto da dica de ferramenta do painel de barras de status, exibir uma barra de progresso no painel especificado, atribuir uma animação ao painel especificado, definir o texto e a largura do painel da barra de status e definir o indicador de progresso atual da barra de progresso para o painel da barra de status. Este snippet de código faz parte do exemplo de Demonstração da Barra de Status.
// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);
Hierarquia de herança
Requisitos
Cabeçalho: afxstatusbar.h
CMFCStatusBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Parâmetros
[in] bStretch
[in] bHorz
Valor de retorno
Comentários
CMFCStatusBar::CommandToIndex
int CommandToIndex(UINT nIDFind) const;
Parâmetros
[in] nIDFind
Valor de retorno
Comentários
CMFCStatusBar::Create
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parâmetros
[in] pParentWnd
[in] dwStyle
[in] nID
Valor de retorno
Comentários
CMFCStatusBar::CreateEx
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parâmetros
[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] nID
Valor de retorno
Comentários
CMFCStatusBar::DoesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
Valor de retorno
Comentários
CMFCStatusBar::EnablePaneDoubleClick
Habilita ou desabilita o tratamento de cliques duplos do mouse na barra de status.
void EnablePaneDoubleClick(BOOL bEnable=TRUE);
Parâmetros
bEnable
[in] Se TRUE, habilite o processamento do mouse clicando duas vezes. Caso contrário desabilite o processamento do mouse clicando duas vezes.
Comentários
Se a barra de status estiver habilitada para processar cliques duplos, o Windows enviará a notificação WM_COMMAND junto com uma ID de recurso para o proprietário da barra de status sempre que o usuário clicar duas vezes no painel da barra de status.
CMFCStatusBar::EnablePaneProgressBar
Exiba uma barra de progresso no painel especificado.
void EnablePaneProgressBar(
int nIndex,
long nTotal=100,
BOOL bDisplayText=FALSE,
COLORREF clrBar=-1,
COLORREF clrBarDest=-1,
COLORREF clrProgressText=-1);
Parâmetros
nIndex
[in] Especifica o índice do painel cuja barra de progresso habilitar.
nTotal
[in] Especifica o valor máximo para a barra de progresso.
bDisplayText
[in] Especifica se a barra de progresso deve exibir o valor de progresso atual.
clrBar
[in] Especifica a cor da tela de fundo da barra de progresso.
clrBarDest
[in] Especifica a cor secundária da tela de fundo da barra de progresso. Use um valor diferente do clrBar para preencher por uma cor misturada em um gradiente.
clrProgressText
[in] Especifica a cor do texto da barra de progresso.
Comentários
Se você quiser desabilitar a barra de progresso, chame EnablePaneProgressBar
com nTotal definido como -1. Por padrão, nTotal é definido como 100. Portanto, você não precisa de nenhum cálculo adicional para exibir o progresso como porcentagem.
Você deve passar valores diferentes para clrBar e clrBarDest para que a cor da tela de fundo da barra de progresso exiba uma cor misturada em um gradiente. .
Para definir o progresso atual, chame o método CMFCStatusBar::SetPaneProgress.
CMFCStatusBar::GetCount
Recupera o número de painéis na barra de status.
int GetCount() const;
Valor de retorno
O número de painéis na barra de status.
CMFCStatusBar::GetDrawExtendedArea
BOOL GetDrawExtendedArea() const;
Valor de retorno
Comentários
CMFCStatusBar::GetExtendedArea
virtual BOOL GetExtendedArea(CRect& rect) const;
Parâmetros
[in] rect
Valor de retorno
Comentários
CMFCStatusBar::GetItemID
UINT GetItemID(int nIndex) const;
Parâmetros
[in] nIndex
Valor de retorno
Comentários
CMFCStatusBar::GetItemRect
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Parâmetros
[in] nIndex
[in] lpRect
Comentários
CMFCStatusBar::GetPaneInfo
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Parâmetros
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
Comentários
CMFCStatusBar::GetPaneProgress
long GetPaneProgress(int nIndex) const;
Parâmetros
[in] nIndex
Valor de retorno
Comentários
CMFCStatusBar::GetPaneStyle
UINT GetPaneStyle(int nIndex) const;
Parâmetros
[in] nIndex
Valor de retorno
Comentários
CMFCStatusBar::GetPaneText
void GetPaneText(
int nIndex,
CString& s) const;
CString GetPaneText(int nIndex) const;
Parâmetros
[in] nIndex
[in] s
Valor de retorno
Comentários
CMFCStatusBar::GetPaneWidth
Recupera a largura do painel de uma barra de status.
int GetPaneWidth(int nIndex) const;
Parâmetros
nIndex
[in] Especifica o índice do painel de barras de status.
Valor de retorno
A largura do painel de barras de status que nIndex especifica; caso contrário, é zero se um painel de barra de status não existir.
CMFCStatusBar::GetTipText
Recupere o texto da dica de ferramenta do painel de uma barra de status.
CString GetTipText(int nIndex) const;
Parâmetros
nIndex
[in] Especifica o índice do painel para o qual recuperar o texto da dica de ferramenta.
Valor de retorno
O texto da dica de ferramenta do painel de barras de status que nIndex especifica. Caso contrário, a cadeia de caracteres vazia se um painel de barras de status não existir para o nIndex especificado ou se o texto da dica de ferramenta estiver vazio.
CMFCStatusBar::InvalidatePaneContent
Invalide o painel de barras de status e redesenhe seu conteúdo.
void InvalidatePaneContent(int nIndex);
Parâmetros
nIndex
[in] Especifica o índice do painel cujo conteúdo deve ser invalidado e redesenhado.
Comentários
Quando a barra de status é invalidada, ela é marcada para redesenhar. O Windows o redesenha quando o método UpdateWindow
envia uma mensagem de WM_PAINT para o método OnPaint
.
CMFCStatusBar::OnDrawPane
Redesenhe o painel da barra de status.
virtual void OnDrawPane(
CDC* pDC,
CMFCStatusBarPaneInfo* pPane);
Parâmetros
pDC
[in] Um ponteiro para um contexto de dispositivo para desenho.
pPane
[in] Um ponteiro para uma estrutura CMFCStatusBarPaneInfo
que contém as informações sobre o painel a ser redesenhado.
Comentários
Por padrão, OnDrawPane
redesenha o painel usando o pDC de contexto do dispositivo de acordo com o estilo e o conteúdo do painel.
Substitua esse método em uma classe derivada de CMFCStatusBar
para personalizar a aparência de um painel.
CMFCStatusBar::PreCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parâmetros
[in] cs
Valor de retorno
Comentários
CMFCStatusBar::SetDrawExtendedArea
void SetDrawExtendedArea(BOOL bSet = TRUE);
Parâmetros
[in] bSet
Comentários
CMFCStatusBar::SetIndicators
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Parâmetros
[in] lpIDArray
[in] nIDCount
Valor de retorno
Comentários
CMFCStatusBar::SetPaneAnimation
Aplica uma animação ao painel especificado.
void SetPaneAnimation(
int nIndex,
HIMAGELIST hImageList,
UINT nFrameRate=500,
BOOL bUpdate=TRUE);
Parâmetros
nIndex
[in] Especifica o índice do painel ao qual você deseja atribuir a ele uma animação.
hImageList
[in] Especifica um identificador para a lista de imagens que contém os quadros de animação.
nFrameRate
[in] Especifica a taxa de quadros, em milissegundos, para a animação.
bUpdate
[in] Se TRUE, atualize o conteúdo do painel imediatamente. Caso contrário, o conteúdo do painel será atualizado quando ele for invalidado.
Comentários
Se você quiser desabilitar a animação atual, chame SetPaneAnimation
com hImageList
definido como NULL.
CMFCStatusBar::SetPaneBackgroundColor
Define a cor da tela de fundo do painel da barra de status.
void SetPaneBackgroundColor(
int nIndex,
COLORREF clrBackground=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parâmetros
nIndex
[in] Especifica o índice do painel para o qual definir uma nova cor de tela de fundo.
clrBackground
[in] Especifica a nova cor da tela de fundo.
bUpdate
[in] Se TRUE, atualize o conteúdo do painel imediatamente. Caso contrário, não atualize o conteúdo do painel até que o painel seja invalidado por outro método.
CMFCStatusBar::SetPaneIcon
Defina o ícone do painel da barra de status.
void SetPaneIcon(
int nIndex,
HICON hIcon,
BOOL bUpdate=TRUE);
void SetPaneIcon(
int nIndex,
HBITMAP hBmp,
COLORREF clrTransparent=RGB(255, 0, 255),
BOOL bUpdate=TRUE);
Parâmetros
nIndex
[in] Especifica o índice do painel para o qual definir a imagem.
hIcon
[in] Especifica um identificador para o ícone a ser definido como a imagem do painel.
bUpdate
[in] Especifica se o conteúdo do painel será atualizado imediatamente.
hBmp
[in] Especifica um identificador para o bitmap a ser definido como a imagem do painel.
clrTransparent
[in] Especifica a cor transparente do bitmap que o hBmp indica.
Comentários
Você pode passar HICON ou HBITMAP junto com a cor transparente para definir a imagem do painel. Se você não quiser exibir a imagem por mais tempo, passe o valor NULL como o identificador da imagem.
Se houver alguma animação em execução definida por CMFCStatusBar::SetPaneAnimation, a animação será interrompida.
CMFCStatusBar::SetPaneInfo
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Parâmetros
[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth
Comentários
CMFCStatusBar::SetPaneProgress
Defina o indicador de progresso atual da barra de progresso para o painel especificado.
void SetPaneProgress(
int nIndex,
long nCurr,
BOOL bUpdate=TRUE);
Parâmetros
nIndex
[in] Especifica o índice do painel para o qual atualizar o indicador de progresso.
nCurr
[in] Especifica o valor atual do indicador de progresso.
bUpdate
[in] Especifica se o painel deve ser atualizado imediatamente.
Comentários
Chame esse método quando quiser atualizar o indicador de progresso para a barra de progresso no painel especificado.
Para usar essa função para o painel fornecido, você deve chamar CMFCStatusBar::EnablePaneProgressBar primeiro.
CMFCStatusBar::SetPaneStyle
void SetPaneStyle(
int nIndex,
UINT nStyle);
Parâmetros
[in] nIndex
[in] nStyle
Comentários
CMFCStatusBar::SetPaneText
virtual BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Parâmetros
[in] nIndex
[in] lpszNewText
[in] bUpdate
Valor de retorno
Comentários
CMFCStatusBar::SetPaneTextColor
Define a cor do texto do painel especificado.
void SetPaneTextColor(
int nIndex,
COLORREF clrText=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parâmetros
nIndex
[in] Especifica o índice do painel ao qual você deseja atribuir uma nova cor de texto.
clrTexto
[in] Especifica a cor do texto.
bUpdate
[in] Se TRUE, atualize o conteúdo do painel imediatamente. Caso contrário, não atualize o conteúdo do painel até que o painel seja invalidado por outro método.
CMFCStatusBar::SetPaneWidth
Defina a largura do painel da barra de status.
void SetPaneWidth(
int nIndex,
int cx);
Parâmetros
nIndex
[in] O índice do painel de barras de status para o qual definir uma nova largura.
cx
[in] A nova largura do painel de barras de status, em pixels.
CMFCStatusBar::SetTipText
Defina o texto da dica de ferramenta de um painel de barras de status.
void SetTipText(
int nIndex,
LPCTSTR pszTipText);
Parâmetros
nIndex
[in] O índice do painel ao qual você deseja atribuir o texto da dica de ferramenta.
pszTipText
[in] O novo texto da dica de ferramenta.
Confira também
Gráfico da hierarquia
Classes
Classe CPane
Classe CStatusBar