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:
Costruire l'oggetto
CStatusBar
.Chiamare la funzione Create (o CreateEx) per creare la finestra della barra di stato e collegarla all'oggetto
CStatusBar
.Chiamare SetIndicators per associare un ID stringa a ogni indicatore.
Esistono tre modi per aggiornare il testo in un riquadro barra di stato:
Chiama CWnd::SetWindowText per aggiornare il testo solo nel riquadro 0.
Chiamare CCmdUI::SetText nel gestore ON_UPDATE_COMMAND_UI della barra di stato.
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 CStatusBar
di , vedere l'articolo Implementazione della barra di stato in MFC e nota tecnica 31 : Barre di controllo.
Gerarchia di ereditarietà
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