Condividi tramite


Classe CMFCStatusBar

La CMFCStatusBar classe implementa una barra di stato simile alla CStatusBar classe . Tuttavia, la classe CMFCStatusBar offre funzionalità non fornite dalla classe CStatusBar , ad esempio le capacità di visualizzare immagini, animazioni e indicatori di stato, oltre alla possibilità di rispondere al doppio clic del mouse.

Per altri dettagli, vedere il codice sorgente che si trova nella cartella VC\atlmfc\src\mfc dell'installazione di Visual Studio.

Sintassi

class CMFCStatusBar : public CPane

Membri

Metodi pubblici

Nome Descrizione
CMFCStatusBar::CalcFixedLayout (sostituzioni )CBasePane::CalcFixedLayout.
CMFCStatusBar::CommandToIndex
CMFCStatusBar::Create Crea una barra di controllo e la collega all'oggetto CPane . (sostituzioni )CPane::Create.
CMFCStatusBar::CreateEx Crea una barra di controllo e la collega all'oggetto CPane . (sostituzioni )CPane::CreateEx.
CMFCStatusBar::D oesAllowDynInsertBefore Determina se un altro riquadro può essere inserito dinamicamente tra questo riquadro e il frame padre. (sostituzioni )CBasePane::D oesAllowDynInsertBefore.
CMFCStatusBar::EnablePaneDoubleClick Abilita o disabilita la gestione dei doppio clic del mouse sulla barra di stato.
CMFCStatusBar::EnablePaneProgressBar Visualizza una barra di stato nel riquadro specificato.
CMFCStatusBar::GetCount Restituisce il numero di riquadri sulla barra di stato.
CMFCStatusBar::GetDrawExtendedArea
CMFCStatusBar::GetExtendedArea
CMFCStatusBar::GetItemID
CMFCStatusBar::GetItemRect
CMFCStatusBar::GetPaneInfo
CMFCStatusBar::GetPaneProgress
CMFCStatusBar::GetPaneStyle Restituisce lo stile del riquadro. (sostituzioni )CBasePane::GetPaneStyle.)
CMFCStatusBar::GetPaneText
CMFCStatusBar::GetPaneWidth Restituisce la larghezza, in pixel, del riquadro specificato della barra di stato.
CMFCStatusBar::GetTipText Restituisce il testo della descrizione comando per il riquadro specificato della barra di stato.
CMFCStatusBar::InvalidatePaneContent Invalida il riquadro specificato e ne ridisegna il contenuto.
CMFCStatusBar::P reCreateWindow Chiamato dal framework prima della creazione della finestra di Windows collegata a questo CWnd oggetto. (sostituzioni )CWnd::P reCreateWindow.
CMFCStatusBar::SetDrawExtendedArea
CMFCStatusBar::SetIndicators
CMFCStatusBar::SetPaneAnimation Assegna un'animazione al riquadro specificato.
CMFCStatusBar::SetPaneBackgroundColor Imposta il colore di sfondo per il riquadro specificato della barra di stato.
CMFCStatusBar::SetPaneIcon Imposta l'icona dell'indicatore per il riquadro specificato della barra di stato.
CMFCStatusBar::SetPaneInfo
CMFCStatusBar::SetPaneProgress Imposta lo stato di avanzamento corrente della barra di stato per il riquadro specificato della barra di stato.
CMFCStatusBar::SetPaneStyle Imposta lo stile del riquadro. (sostituzioni )CBasePane::SetPaneStyle.)
CMFCStatusBar::SetPaneText
CMFCStatusBar::SetPaneTextColor Imposta il colore del testo per il riquadro specificato della barra di stato.
CMFCStatusBar::SetPaneWidth Imposta la larghezza in pixel del riquadro specificato della barra di stato.
CMFCStatusBar::SetTipText Imposta il testo della descrizione comando per il riquadro specificato della barra di stato.

Metodi protetti

Nome Descrizione
CMFCStatusBar::OnDrawPane Chiamato dal framework quando ridisegna il riquadro della barra di stato.

Osservazioni:

Il diagramma seguente mostra una figura della barra di stato dell'applicazione di esempio Demo barra di stato.

Esempio di CMFCStatusBar.

Esempi

Nell'esempio seguente vengono illustrate le variabili locali usate dall'applicazione per chiamare vari metodi nella CMFCStatusBar classe . Queste variabili vengono dichiarate in StatusBarDemoView.h. Il frame principale viene dichiarato in MainFrm.h, il documento viene dichiarato in StatusBarDemoDoc.h e la visualizzazione viene dichiarata in StatusBarDemoView.h. Questo frammento di codice fa parte dell'esempio demo della barra di stato.

int m_nProgressCurr;
BOOL m_bInProgress;

CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;

CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;

Nell'esempio seguente viene illustrato come ottenere un riferimento all'oggetto CMFCStatusBar introducendo il GetStatusBar metodo in MainFrm.h e quindi chiamando questo metodo dal GetStatusBar metodo in StatusBarDemoView.h. Questo frammento di codice fa parte dell'esempio demo della barra di stato.

// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
   return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
   return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}

Nell'esempio seguente viene illustrato come chiamare vari metodi nella CMFCStatusBar classe in StatusBarDemoView.cpp. Le costanti vengono dichiarate in MainFrm.h. Nell'esempio viene illustrato come impostare l'icona, impostare il testo della descrizione comando del riquadro della barra di stato, visualizzare una barra di stato nel riquadro specificato, assegnare un'animazione al riquadro specificato, impostare il testo e la larghezza del riquadro della barra di stato e impostare l'indicatore di stato corrente della barra di stato per il riquadro della barra di stato. Questo frammento di codice fa parte dell'esempio demo della barra di stato.

// 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);

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCStatusBar

Requisiti

Intestazione: afxstatusbar.h

CMFCStatusBar::CalcFixedLayout

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parametri

[in] bStretch
[in] bHorz

Valore restituito

Osservazioni:

CMFCStatusBar::CommandToIndex

int CommandToIndex(UINT nIDFind) const;

Parametri

[in] nIDFind

Valore restituito

Osservazioni:

CMFCStatusBar::Create

BOOL Create(
    CWnd* pParentWnd,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parametri

[in] pParentWnd
[in] dwStyle
[in] nID

Valore restituito

Osservazioni:

CMFCStatusBar::CreateEx

BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parametri

[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] nID

Valore restituito

Osservazioni:

CMFCStatusBar::D oesAllowDynInsertBefore

virtual BOOL DoesAllowDynInsertBefore() const;

Valore restituito

Osservazioni:

CMFCStatusBar::EnablePaneDoubleClick

Abilita o disabilita la gestione dei doppio clic del mouse sulla barra di stato.

void EnablePaneDoubleClick(BOOL bEnable=TRUE);

Parametri

bEnable
[in] Se TRUE, abilitare l'elaborazione del doppio clic del mouse. In caso contrario, disabilitare l'elaborazione del doppio clic del mouse.

Osservazioni:

Se la barra di stato è abilitata per elaborare i doppio clic, Windows invia la notifica WM_COMMAND insieme a un ID risorsa al proprietario della barra di stato ogni volta che l'utente fa doppio clic sul riquadro della barra di stato.

CMFCStatusBar::EnablePaneProgressBar

Visualizzare una barra di stato nel riquadro specificato.

void EnablePaneProgressBar(
    int nIndex,
    long nTotal=100,
    BOOL bDisplayText=FALSE,
    COLORREF clrBar=-1,
    COLORREF clrBarDest=-1,
    COLORREF clrProgressText=-1);

Parametri

nIndex
[in] Specifica l'indice del riquadro di cui abilitare l'indicatore di stato.

nTotal
[in] Specifica il valore massimo per l'indicatore di stato.

bDisplayText
[in] Specifica se la barra di stato deve visualizzare il valore di stato corrente.

clrBar
[in] Specifica il colore di sfondo della barra di stato.

clrBarDest
[in] Specifica il colore secondario dello sfondo dell'indicatore di stato. Usare un valore diverso rispetto a clrBar per riempire un colore combinato in una sfumatura.

clrProgressText
[in] Specifica il colore del testo dell'indicatore di stato.

Osservazioni:

Se si desidera disabilitare la chiamata EnablePaneProgressBar all'indicatore di stato con nTotal impostato su -1. Per impostazione predefinita , nTotal è impostato su 100. Pertanto, non sono necessari calcoli aggiuntivi per visualizzare lo stato di avanzamento come percentuale.

È consigliabile passare valori diversi per clrBar e clrBarDest in modo che il colore di sfondo della barra di stato visualizzi un colore combinato in una sfumatura. .

Per impostare lo stato di avanzamento corrente, chiamare il metodo CMFCStatusBar::SetPaneProgress .

CMFCStatusBar::GetCount

Recupera il numero di riquadri nella barra di stato.

int GetCount() const;

Valore restituito

Numero di riquadri nella barra di stato.

CMFCStatusBar::GetDrawExtendedArea

BOOL GetDrawExtendedArea() const;

Valore restituito

Osservazioni:

CMFCStatusBar::GetExtendedArea

virtual BOOL GetExtendedArea(CRect& rect) const;

Parametri

[in] rect

Valore restituito

Osservazioni:

CMFCStatusBar::GetItemID

UINT GetItemID(int nIndex) const;

Parametri

[in] nIndex

Valore restituito

Osservazioni:

CMFCStatusBar::GetItemRect

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parametri

[in] nIndex
[in] lpRect

Osservazioni:

CMFCStatusBar::GetPaneInfo

void GetPaneInfo(
    int nIndex,
    UINT& nID,
    UINT& nStyle,
    int& cxWidth) const;

Parametri

[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth

Osservazioni:

CMFCStatusBar::GetPaneProgress

long GetPaneProgress(int nIndex) const;

Parametri

[in] nIndex

Valore restituito

Osservazioni:

CMFCStatusBar::GetPaneStyle

UINT GetPaneStyle(int nIndex) const;

Parametri

[in] nIndex

Valore restituito

Osservazioni:

CMFCStatusBar::GetPaneText

void GetPaneText(
    int nIndex,
    CString& s) const;

CString GetPaneText(int nIndex) const;

Parametri

[in] nIndex
[in] s

Valore restituito

Osservazioni:

CMFCStatusBar::GetPaneWidth

Recupera la larghezza del riquadro di una barra di stato.

int GetPaneWidth(int nIndex) const;

Parametri

nIndex
[in] Specifica l'indice del riquadro della barra di stato.

Valore restituito

Larghezza del riquadro della barra di stato specificata da nIndex ; in caso contrario, zero se non esiste un riquadro barra di stato.

CMFCStatusBar::GetTipText

Recuperare il testo della descrizione comando del riquadro di una barra di stato.

CString GetTipText(int nIndex) const;

Parametri

nIndex
[in] Specifica l'indice del riquadro per il quale recuperare il testo della descrizione comando.

Valore restituito

Testo della descrizione comando del riquadro barra di stato specificato da nIndex . In caso contrario, la stringa vuota se non esiste un riquadro della barra di stato per il valore nIndex specificato o se il testo della descrizione comando è vuoto.

CMFCStatusBar::InvalidatePaneContent

Invalidare il riquadro della barra di stato e ridisegnarne il contenuto.

void InvalidatePaneContent(int nIndex);

Parametri

nIndex
[in] Specifica l'indice del riquadro il cui contenuto deve essere invalidato e ridisegnato.

Osservazioni:

Quando la barra di stato viene invalidata, viene contrassegnata per il ridisegno. Windows lo ridisegna quando il UpdateWindow metodo invia un messaggio WM_PAINT al OnPaint metodo .

CMFCStatusBar::OnDrawPane

Ridisegnare il riquadro della barra di stato.

virtual void OnDrawPane(
    CDC* pDC,
    CMFCStatusBarPaneInfo* pPane);

Parametri

pDC
[in] Puntatore a un contesto di dispositivo per il disegno.

pPane
[in] Puntatore a una CMFCStatusBarPaneInfo struttura contenente le informazioni sul riquadro da ridisegnare.

Osservazioni:

Per impostazione predefinita, OnDrawPane ridisegna il riquadro usando il data center di contesto del dispositivo in base allo stile e al contenuto del riquadro.

Eseguire l'override di questo metodo in una CMFCStatusBarclasse derivata da per personalizzare l'aspetto di un riquadro.

CMFCStatusBar::P reCreateWindow

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Parametri

[in] Cs

Valore restituito

Osservazioni:

CMFCStatusBar::SetDrawExtendedArea

void SetDrawExtendedArea(BOOL bSet = TRUE);

Parametri

[in] bSet

Osservazioni:

CMFCStatusBar::SetIndicators

BOOL SetIndicators(
    const UINT* lpIDArray,
    int nIDCount);

Parametri

[in] lpIDArray
[in] nIDCount

Valore restituito

Osservazioni:

CMFCStatusBar::SetPaneAnimation

Assegna un'animazione al riquadro specificato.

void SetPaneAnimation(
    int nIndex,
    HIMAGELIST hImageList,
    UINT nFrameRate=500,
    BOOL bUpdate=TRUE);

Parametri

nIndex
[in] Specifica l'indice del riquadro a cui assegnare un'animazione.

hImageList
[in] Specifica un handle per l'elenco di immagini che contiene i fotogrammi di animazione.

nFrameRate
[in] Specifica la frequenza dei fotogrammi, espressa in millisecondi, per l'animazione.

bUpdate
[in] Se TRUE, aggiornare immediatamente il contenuto del riquadro. In caso contrario, il contenuto del riquadro viene aggiornato quando viene invalidato.

Osservazioni:

Se vuoi disabilitare l'animazione corrente, chiama SetPaneAnimation con hImageList impostato su NULL.

CMFCStatusBar::SetPaneBackgroundColor

Imposta il colore di sfondo del riquadro della barra di stato.

void SetPaneBackgroundColor(
    int nIndex,
    COLORREF clrBackground=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parametri

nIndex
[in] Specifica l'indice del riquadro per il quale impostare un nuovo colore di sfondo.

clrBackground
[in] Specifica il nuovo colore di sfondo.

bUpdate
[in] Se TRUE, aggiornare immediatamente il contenuto del riquadro. In caso contrario, non aggiornare il contenuto del riquadro finché il riquadro non viene invalidato da un altro metodo.

CMFCStatusBar::SetPaneIcon

Impostare l'icona del riquadro della barra di stato.

void SetPaneIcon(
    int nIndex,
    HICON hIcon,
    BOOL bUpdate=TRUE);

void SetPaneIcon(
    int nIndex,
    HBITMAP hBmp,
    COLORREF clrTransparent=RGB(255, 0, 255),
    BOOL bUpdate=TRUE);

Parametri

nIndex
[in] Specifica l'indice del riquadro per il quale impostare l'immagine.

hIcon
[in] Specifica un handle per l'icona da impostare come immagine del riquadro.

bUpdate
[in] Specifica se aggiornare immediatamente il contenuto del riquadro.

hBmp
[in] Specifica un handle per la bitmap da impostare come immagine del riquadro.

clrTransparent
[in] Specifica il colore trasparente della bitmap che indica hBmp .

Osservazioni:

È possibile passare HICON o HBITMAP insieme al colore trasparente per impostare l'immagine del riquadro. Se non si vuole più visualizzare l'immagine, passare il valore NULL come handle di immagine.

Se è presente un'animazione in esecuzione impostata da CMFCStatusBar::SetPaneAnimation , l'animazione verrà arrestata.

CMFCStatusBar::SetPaneInfo

void SetPaneInfo(
    int nIndex,
    UINT nID,
    UINT nStyle,
    int cxWidth);

Parametri

[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth

Osservazioni:

CMFCStatusBar::SetPaneProgress

Impostare l'indicatore di stato corrente della barra di stato per il riquadro specificato.

void SetPaneProgress(
    int nIndex,
    long nCurr,
    BOOL bUpdate=TRUE);

Parametri

nIndex
[in] Specifica l'indice del riquadro per il quale aggiornare l'indicatore di stato.

nCurr
[in] Specifica il valore corrente dell'indicatore di stato.

bUpdate
[in] Specifica se il riquadro deve essere aggiornato immediatamente.

Osservazioni:

Chiamare questo metodo quando si desidera aggiornare l'indicatore di stato per la barra di stato nel riquadro specificato.

Per usare questa funzione per il riquadro specificato, è prima necessario chiamare CMFCStatusBar::EnablePaneProgressBar .

CMFCStatusBar::SetPaneStyle

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Parametri

[in] nIndex
[in] nStyle

Osservazioni:

CMFCStatusBar::SetPaneText

virtual BOOL SetPaneText(
    int nIndex,
    LPCTSTR lpszNewText,
    BOOL bUpdate = TRUE);

Parametri

[in] nIndex
[in] lpszNewText
[in] bUpdate

Valore restituito

Osservazioni:

CMFCStatusBar::SetPaneTextColor

Imposta il colore del testo del riquadro specificato.

void SetPaneTextColor(
    int nIndex,
    COLORREF clrText=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parametri

nIndex
[in] Specifica l'indice del riquadro a cui si desidera assegnare un nuovo colore di testo.

clrText
[in] Specifica il colore del testo.

bUpdate
[in] Se TRUE, aggiornare immediatamente il contenuto del riquadro. In caso contrario, non aggiornare il contenuto del riquadro finché il riquadro non viene invalidato da un altro metodo.

CMFCStatusBar::SetPaneWidth

Impostare la larghezza del riquadro della barra di stato.

void SetPaneWidth(
    int nIndex,
    int cx);

Parametri

nIndex
[in] Indice del riquadro della barra di stato per il quale impostare una nuova larghezza.

cx
[in] Nuova larghezza del riquadro della barra di stato, in pixel.

CMFCStatusBar::SetTipText

Impostare il testo della descrizione comando di un riquadro barra di stato.

void SetTipText(
    int nIndex,
    LPCTSTR pszTipText);

Parametri

nIndex
[in] Indice del riquadro a cui si desidera assegnare il testo della descrizione comando.

pszTipText
[in] Nuovo testo della descrizione comando.

Vedi anche

Grafico della gerarchia
Classi
Classe CPane
Classe CStatusBar