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.
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à
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 CMFCStatusBar
classe 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