Condividi tramite


Classe CStatusBar

Barra di controllo con una riga di riquadri di output di testo o "indicatori".

Sintassi

class CStatusBar : public CControlBar

Membri

Costruttori pubblici

Nome Descrizione
CStatusBar::CStatusBar Costruisce un oggetto CStatusBar.

Metodi pubblici

Nome Descrizione
CStatusBar::CommandToIndex Ottiene l'indice per un ID indicatore specificato.
CStatusBar::Create Crea la barra di stato, la collega all'oggetto e imposta l'altezza CStatusBar iniziale del carattere e della barra.
CStatusBar::CreateEx Crea un CStatusBar oggetto con stili aggiuntivi per l'oggetto incorporato CStatusBarCtrl .
CStatusBar::D rawItem Chiamato quando cambia un aspetto visivo di un controllo barra di stato di disegno proprietario.
CStatusBar::GetItemID Ottiene l'ID indicatore per un determinato indice.
CStatusBar::GetItemRect Ottiene un rettangolo di visualizzazione per un determinato indice.
CStatusBar::GetPaneInfo Ottiene l'ID indicatore, lo stile e la larghezza per un determinato indice.
CStatusBar::GetPaneStyle Ottiene lo stile dell'indicatore per un determinato indice.
CStatusBar::GetPaneText Ottiene il testo dell'indicatore per un determinato indice.
CStatusBar::GetStatusBarCtrl Consente l'accesso diretto al controllo comune sottostante.
CStatusBar::SetIndicators Imposta gli ID indicatore.
CStatusBar::SetPaneInfo Imposta l'ID indicatore, lo stile e la larghezza per un determinato indice.
CStatusBar::SetPaneStyle Imposta lo stile dell'indicatore per un determinato indice.
CStatusBar::SetPaneText Imposta il testo dell'indicatore per un determinato indice.

Osservazioni:

I riquadri di output vengono comunemente usati come righe di messaggio e come indicatori di stato. Gli esempi includono le righe del messaggio della Guida del menu che spiegano brevemente il comando di menu selezionato e gli indicatori che mostrano lo stato di SCROLL LOCK, NUM LOCK e altri tasti.

CStatusBar::GetStatusBarCtrl, una funzione membro nuova a MFC 4.0, consente di sfruttare il supporto del controllo comune di Windows per la personalizzazione della barra di stato e funzionalità aggiuntive. CStatusBar le funzioni membro offrono la maggior parte delle funzionalità dei controlli comuni di Windows; Tuttavia, quando chiami GetStatusBarCtrl, puoi assegnare alle barre di stato ancora di più le caratteristiche di una barra di stato di Windows 95/98. Quando si chiama GetStatusBarCtrl, restituisce un riferimento a un CStatusBarCtrl oggetto . Per altre informazioni sulla progettazione di barre degli strumenti con i controlli comuni di Windows, vedere CStatusBarCtrl . Per informazioni più generali sui controlli comuni, vedere Controlli comuni in Windows SDK.

Il framework archivia le informazioni sugli indicatori in una matrice con l'indicatore più a sinistra nella posizione 0. Quando si crea una barra di stato, si usa una matrice di ID stringa associati dal framework agli indicatori corrispondenti. È quindi possibile usare un ID stringa o un indice per accedere a un indicatore.

Per impostazione predefinita, il primo indicatore è "elastico": occupa la lunghezza della barra di stato non usata dagli altri riquadri indicatore, in modo che gli altri riquadri siano allineati a destra.

Per creare una barra di stato, seguire questa procedura:

  1. Costruire l'oggetto CStatusBar.

  2. Chiamare la funzione Create (o CreateEx) per creare la finestra della barra di stato e collegarla all'oggetto CStatusBar .

  3. Chiamare SetIndicators per associare un ID stringa a ogni indicatore.

Esistono tre modi per aggiornare il testo in un riquadro barra di stato:

  1. Chiama CWnd::SetWindowText per aggiornare il testo solo nel riquadro 0.

  2. Chiamare CCmdUI::SetText nel gestore ON_UPDATE_COMMAND_UI della barra di stato.

  3. Chiamare SetPaneText per aggiornare il testo per qualsiasi riquadro.

Chiamare SetPaneStyle per aggiornare lo stile di un riquadro barra di stato.

Per altre informazioni sull'uso CStatusBardi , vedere l'articolo Implementazione della barra di stato in MFC e nota tecnica 31 : Barre di controllo.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

Ccontrolbar

CStatusBar

Requisiti

Intestazione: afxext.h

CStatusBar::CommandToIndex

Ottiene l'indice dell'indicatore per un ID specificato.

int CommandToIndex(UINT nIDFind) const;

Parametri

nIDFind
ID stringa dell'indicatore di cui recuperare l'indice.

Valore restituito

Indice dell'indicatore in caso di esito positivo; -1 se non ha esito positivo.

Osservazioni:

L'indice del primo indicatore è 0.

CStatusBar::Create

Crea una barra di stato (una finestra figlio) e la associa all'oggetto CStatusBar .

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

Parametri

pParentWnd
Puntatore all'oggetto CWnd la cui finestra di Windows è l'elemento padre della barra di stato.

dwStyle
Stile barra di stato. Oltre agli stili di Windows standard, questi stili sono supportati.

  • CBRS_TOP barra di controllo si trova nella parte superiore della finestra cornice.

  • CBRS_BOTTOM barra di controllo si trova nella parte inferiore della finestra cornice.

  • CBRS_NOALIGN barra di controllo non viene riposizionata quando l'elemento padre viene ridimensionato.

nID
ID finestra figlio della barra degli strumenti.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Imposta anche il tipo di carattere iniziale e imposta l'altezza della barra di stato su un valore predefinito.

CStatusBar::CreateEx

Chiamare questa funzione per creare una barra di stato (una finestra figlio) e associarla all'oggetto CStatusBar .

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

Parametri

pParentWnd
Puntatore all'oggetto CWnd la cui finestra di Windows è l'elemento padre della barra di stato.

dwCtrlStyle
Stili aggiuntivi per la creazione dell'oggetto CStatusBarCtrl incorporato. Il valore predefinito specifica una barra di stato senza un grip di ridimensionamento o una descrizione comando. Gli stili delle barre di stato supportati sono:

  • SBARS_SIZEGRIP Il controllo barra di stato include un grip di ridimensionamento alla fine destra della barra di stato. Un grip di ridimensionamento è simile a un bordo di ridimensionamento; si tratta di un'area rettangolare che l'utente può fare clic e trascinare per ridimensionare la finestra padre.

  • SBT_TOOLTIPS La barra di stato supporta le descrizioni comando.

Per informazioni dettagliate su questi stili, vedere Impostazioni per CStatusBarCtrl.

dwStyle
Stile della barra di stato. Il valore predefinito specifica che viene creata una barra di stato visibile nella parte inferiore della finestra cornice. Applicare qualsiasi combinazione di stili di controllo barra di stato elencati in Stili finestra e CDialogBar::Create. Tuttavia, questo parametro deve includere sempre gli stili WS_CHILD e WS_VISIBLE.

nID
ID finestra figlio della barra di stato.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Questa funzione imposta anche il tipo di carattere iniziale e imposta l'altezza della barra di stato su un valore predefinito.

Usare CreateEx, invece di Crea, quando alcuni stili devono essere presenti durante la creazione del controllo barra di stato incorporato. Ad esempio, impostare dwCtrlStyle su SBT_TOOLTIPS per visualizzare le descrizioni comando in un oggetto barra di stato.

CStatusBar::CStatusBar

Costruisce un CStatusBar oggetto, crea un tipo di carattere predefinito della barra di stato, se necessario, e imposta le caratteristiche del carattere sui valori predefiniti.

CStatusBar();

CStatusBar::D rawItem

Questa funzione membro viene chiamata dal framework quando viene modificato un aspetto visivo di una barra di stato disegnata dal proprietario.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametri

lpDrawItemStruct
Puntatore a una struttura DRAWITEMSTRUCT che contiene informazioni sul tipo di disegno richiesto.

Osservazioni:

Il itemAction membro della DRAWITEMSTRUCT struttura definisce l'azione di disegno da eseguire. Eseguire l'override di questa funzione membro per implementare il disegno per un oggetto di disegno CStatusBar proprietario. L'applicazione deve ripristinare tutti gli oggetti GDI (Graphics Device Interface) selezionati per il contesto di visualizzazione fornito in lpDrawItemStruct prima della terminazione di questa funzione membro.

CStatusBar::GetItemID

Restituisce l'ID dell'indicatore specificato da nIndex.

UINT GetItemID(int nIndex) const;

Parametri

nIndex
Indice dell'indicatore il cui ID deve essere recuperato.

Valore restituito

ID dell'indicatore specificato da nIndex.

CStatusBar::GetItemRect

Copia le coordinate dell'indicatore specificato da nIndex nella struttura a cui punta lpRect.

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parametri

nIndex
Indice dell'indicatore di cui recuperare le coordinate del rettangolo.

Lprect
Punta a una struttura RECT o a un oggetto CRect che riceverà le coordinate dell'indicatore specificato da nIndex.

Osservazioni:

Le coordinate sono in pixel rispetto all'angolo superiore sinistro della barra di stato.

CStatusBar::GetPaneInfo

Imposta nID, nStyle e cxWidth sull'ID, lo stile e la larghezza del riquadro indicatore nella posizione specificata da nIndex.

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

Parametri

nIndex
Indice del riquadro le cui informazioni devono essere recuperate.

nID
Riferimento a un oggetto UINT impostato sull'ID del riquadro.

nStyle
Riferimento a un oggetto UINT impostato sullo stile del riquadro.

cxWidth
Riferimento a un numero intero impostato sulla larghezza del riquadro.

CStatusBar::GetPaneStyle

Chiamare questa funzione membro per recuperare lo stile del riquadro di una barra di stato.

UINT GetPaneStyle(int nIndex) const;

Parametri

nIndex
Indice del riquadro il cui stile deve essere recuperato.

Valore restituito

Stile del riquadro della barra di stato specificato da nIndex.

Osservazioni:

Lo stile di un riquadro determina la modalità di visualizzazione del riquadro.

Per un elenco degli stili disponibili per le barre di stato, vedere Creare.

CStatusBar::GetPaneText

Chiamare questa funzione membro per recuperare il testo visualizzato in un riquadro della barra di stato.

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

Parametri

nIndex
Indice del riquadro di cui recuperare il testo.

rString
Riferimento a un oggetto CString che contiene il testo da recuperare.

Valore restituito

Oggetto CString contenente il testo del riquadro.

Osservazioni:

Il secondo formato di questa funzione membro riempie un CString oggetto con il testo stringa.

CStatusBar::GetStatusBarCtrl

Questa funzione membro consente l'accesso diretto al controllo comune sottostante.

CStatusBarCtrl& GetStatusBarCtrl() const;

Valore restituito

Contiene un riferimento a un oggetto CStatusBarCtrl .

Osservazioni:

Usa GetStatusBarCtrl per sfruttare le funzionalità del controllo comune della barra di stato di Windows e per sfruttare i vantaggi del supporto di CStatusBarCtrl per la personalizzazione della barra di stato. Ad esempio, usando il controllo comune, è possibile specificare uno stile che include un grip di ridimensionamento sulla barra di stato oppure specificare uno stile in cui visualizzare la barra di stato nella parte superiore dell'area client della finestra padre.

Per informazioni più generali sui controlli comuni, vedere Controlli comuni in Windows SDK.

CStatusBar::SetIndicators

Imposta l'ID di ogni indicatore sul valore specificato dall'elemento corrispondente della matrice lpIDArray, carica la risorsa stringa specificata da ogni ID e imposta il testo dell'indicatore sulla stringa.

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

Parametri

lpIDArray
Puntatore a una matrice di ID.

nIDCount
Numero di elementi nella matrice a cui punta lpIDArray.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

CStatusBar::SetPaneInfo

Imposta il riquadro indicatore specificato su un nuovo ID, stile e larghezza.

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

Parametri

nIndex
Indice del riquadro indicatore il cui stile deve essere impostato.

nID
Nuovo ID per il riquadro indicatore.

nStyle
Nuovo stile per il riquadro indicatore.

cxWidth
Nuova larghezza per il riquadro indicatore.

Osservazioni:

Sono supportati gli stili di indicatore seguenti:

  • SBPS_NOBORDERS nessun bordo 3D intorno al riquadro.

  • SBPS_POPOUT bordo inverso in modo che il testo venga visualizzato.

  • SBPS_DISABLED Non disegnare testo.

  • SBPS_STRETCH riquadro Stretch per riempire lo spazio inutilizzato. Un solo riquadro per barra di stato può avere questo stile.

  • SBPS_NORMAL Nessuna estensione, bordi o popup.

CStatusBar::SetPaneStyle

Chiamare questa funzione membro per impostare lo stile del riquadro di una barra di stato.

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Parametri

nIndex
Indice del riquadro il cui stile deve essere impostato.

nStyle
Stile del riquadro il cui stile deve essere impostato.

Osservazioni:

Lo stile di un riquadro determina la modalità di visualizzazione del riquadro.

Per un elenco degli stili disponibili per le barre di stato, vedere SetPaneInfo.

CStatusBar::SetPaneText

Chiamare questa funzione membro per impostare il testo del riquadro sulla stringa a cui punta lpszNewText.

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

Parametri

nIndex
Indice del riquadro di cui impostare il testo.

lpszNewText
Puntatore al nuovo testo del riquadro.

Bupdate
Se TRUE, il riquadro viene invalidato dopo l'impostazione del testo.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Dopo aver chiamato SetPaneText, è necessario aggiungere un gestore di aggiornamento dell'interfaccia utente per visualizzare il nuovo testo nella barra di stato.

Esempio

//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);

 

//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)

 

void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
   pCmdUI->Enable();
}

Vedi anche

MFC Sample CTRLBARS
DLGCBR32 di esempio MFC
CControlBar Class
Grafico della gerarchia
Classe CStatusBarCtrl
CControlBar Class