Compartilhar via


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.

Exemplo de CMFCStatusBar.

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

CObject

CCmdTarget

CWnd

CBasePane

CPane

Barra CMFCStatus

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