Classe CStatusBarCtrl
Fornisce la funzionalità del controllo barra di stato comune di Windows.
Sintassi
class CStatusBarCtrl : public CWnd
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CStatusBarCtrl::CStatusBarCtrl | Costruisce un oggetto CStatusBarCtrl . |
Metodi pubblici
Nome | Descrizione |
---|---|
CStatusBarCtrl::Create | Crea un controllo barra di stato e lo collega a un CStatusBarCtrl oggetto . |
CStatusBarCtrl::CreateEx | Crea un controllo barra di stato con gli stili estesi di Windows specificati e lo associa a un CStatusBarCtrl oggetto . |
CStatusBarCtrl::D rawItem | Chiamato quando cambia un aspetto visivo di un controllo barra di stato di disegno proprietario. |
CStatusBarCtrl::GetBorders | Recupera le larghezze correnti dei bordi orizzontali e verticali di un controllo barra di stato. |
CStatusBarCtrl::GetIcon | Recupera l'icona per una parte (nota anche come riquadro) nel controllo barra di stato corrente. |
CStatusBarCtrl::GetParts | Recupera un conteggio delle parti in un controllo barra di stato. |
CStatusBarCtrl::GetRect | Recupera il rettangolo di delimitazione di una parte in un controllo barra di stato. |
CStatusBarCtrl::GetText | Recupera il testo dalla parte specificata di un controllo barra di stato. |
CStatusBarCtrl::GetTextLength | Recuperare la lunghezza, in caratteri, del testo dalla parte specificata di un controllo barra di stato. |
CStatusBarCtrl::GetTipText | Recupera il testo della descrizione comando per un riquadro in una barra di stato. |
CStatusBarCtrl::IsSimple | Controlla un controllo finestra di stato per determinare se è in modalità semplice. |
CStatusBarCtrl::SetBkColor | Imposta il colore di sfondo in una barra di stato. |
CStatusBarCtrl::SetIcon | Imposta l'icona per un riquadro in una barra di stato. |
CStatusBarCtrl::SetMinHeight | Imposta l'altezza minima dell'area di disegno di un controllo barra di stato. |
CStatusBarCtrl::SetParts | Imposta il numero di parti in un controllo barra di stato e la coordinata del bordo destro di ogni parte. |
CStatusBarCtrl::SetSimple | Specifica se un controllo barra di stato visualizza testo semplice o visualizza tutte le parti di controllo impostate da una chiamata precedente a SetParts . |
CStatusBarCtrl::SetText | Imposta il testo nella parte specificata di un controllo barra di stato. |
CStatusBarCtrl::SetTipText | Imposta il testo della descrizione comando per un riquadro in una barra di stato. |
Osservazioni:
Un "controllo barra di stato" è una finestra orizzontale, in genere visualizzata nella parte inferiore di una finestra padre, in cui un'applicazione può visualizzare vari tipi di informazioni sullo stato. Il controllo barra di stato può essere diviso in parti per visualizzare più tipi di informazioni.
Questo controllo (e quindi la CStatusBarCtrl
classe ) è disponibile solo per i programmi in esecuzione in Windows 95/98 e Windows NT versione 3.51 e successive.
Per altre informazioni sull'uso CStatusBarCtrl
di , vedere Controlli e uso di CStatusBarCtrl.
Gerarchia di ereditarietà
CStatusBarCtrl
Requisiti
Intestazione: afxcmn.h
CStatusBarCtrl::Create
Crea un controllo barra di stato e lo collega a un CStatusBarCtrl
oggetto .
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametri
dwStyle
Specifica lo stile del controllo barra di stato. Applicare qualsiasi combinazione di stili di controllo barra di stato elencati in Stili di controllo comuni in Windows SDK. Questo parametro deve includere lo stile WS_CHILD. Deve includere anche lo stile WS_VISIBLE.
rect
Specifica le dimensioni e la posizione del controllo barra di stato. Può essere un oggetto CRect o una struttura RECT .
pParentWnd
Specifica la finestra padre del controllo barra di stato, in genere un oggetto CDialog
. Non deve essere NULL.
nID
Specifica l'ID del controllo barra di stato.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Si costruisce un oggetto CStatusBarCtrl
in due passaggi. Chiamare innanzitutto il costruttore e quindi chiamare Create
, che crea il controllo barra di stato e lo collega all'oggetto CStatusBarCtrl
.
La posizione predefinita di una finestra di stato si trova nella parte inferiore della finestra padre, ma è possibile specificare lo stile CCS_TOP in modo che venga visualizzato nella parte superiore dell'area client della finestra padre. È possibile specificare lo stile SBARS_SIZEGRIP per includere un grip di ridimensionamento alla fine destra della finestra di stato. Non è consigliabile combinare gli stili CCS_TOP e SBARS_SIZEGRIP, perché il grip di ridimensionamento risultante non è funzionale anche se il sistema lo disegna nella finestra di stato.
Per creare una barra di Create
stato con stili di finestra estesi, chiamare CStatusBarCtrl::CreateEx anziché .
Esempio
VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));
CStatusBarCtrl::CreateEx
Crea un controllo (una finestra figlio) e lo associa all'oggetto CStatusBarCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametri
dwExStyle
Specifica lo stile esteso del controllo da creare. Per un elenco degli stili di Windows estesi, vedere il parametro dwExStyle per CreateWindowEx in Windows SDK.
dwStyle
Specifica lo stile del controllo barra di stato. Applicare qualsiasi combinazione di stili di controllo barra di stato elencati in Stili di controllo comuni in Windows SDK. Questo parametro deve includere lo stile WS_CHILD. Deve includere anche lo stile WS_VISIBLE.
rect
Riferimento a una struttura RECT che descrive le dimensioni e la posizione della finestra da creare, nelle coordinate client di pParentWnd.
pParentWnd
Puntatore alla finestra padre del controllo.
nID
ID finestra figlio del controllo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Usare CreateEx
invece di Crea per applicare stili di Windows estesi, specificati dalla prefazione dello stile esteso di Windows WS_EX_.
CStatusBarCtrl::CStatusBarCtrl
Costruisce un oggetto CStatusBarCtrl
.
CStatusBarCtrl();
CStatusBarCtrl::D rawItem
Chiamato dal framework quando cambia un aspetto visivo di un controllo barra di stato di disegno proprietario.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametri
lpDrawItemStruct
Puntatore lungo a una struttura DRAWITEMSTRUCT contenente informazioni sul tipo di disegno richiesto.
Osservazioni:
Il itemAction
membro della DRAWITEMSTRUCT
struttura definisce l'azione di disegno da eseguire.
Per impostazione predefinita, questa funzione membro non esegue alcuna operazione. Eseguire l'override di questa funzione membro per implementare il disegno per un oggetto di disegno CStatusBarCtrl
proprietario.
L'applicazione deve ripristinare tutti gli oggetti GDI (Graphics Device Interface) selezionati per il contesto di visualizzazione fornito in lpDrawItemStruct prima che questa funzione membro termini.
CStatusBarCtrl::GetBorders
Recupera le larghezze correnti del controllo barra di stato dei bordi orizzontali e verticali e dello spazio tra rettangoli.
BOOL GetBorders(int* pBorders) const;
BOOL GetBorders(
int& nHorz,
int& nVert,
int& nSpacing) const;
Parametri
pBorders
Indirizzo di una matrice integer con tre elementi. Il primo elemento riceve la larghezza del bordo orizzontale, la seconda riceve la larghezza del bordo verticale e la terza riceve la larghezza del bordo tra rettangoli.
nHorz
Riferimento a un numero intero che riceve la larghezza del bordo orizzontale.
nVert
Riferimento a un numero intero che riceve la larghezza del bordo verticale.
nSpacing
Riferimento a un numero intero che riceve la larghezza del bordo tra rettangoli.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Questi bordi determinano la spaziatura tra il bordo esterno del controllo e i rettangoli all'interno del controllo che contengono testo.
Esempio
RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));
int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));
CStatusBarCtrl::GetIcon
Recupera l'icona per una parte (nota anche come riquadro) nel controllo barra di stato corrente.
HICON GetIcon(int iPart) const;
Parametri
iPart
[in] Indice in base zero della parte che contiene l'icona da recuperare. Se questo parametro è -1, si presuppone che la barra di stato sia una barra di stato in modalità semplice.
Valore restituito
Handle dell'icona se il metodo ha esito positivo; in caso contrario, NULL.
Osservazioni:
Questo metodo invia il messaggio di SB_GETICON , descritto in Windows SDK.
Un controllo barra di stato è costituito da una riga di riquadri di output di testo, noti anche come parti. Per altre informazioni sulla barra di stato, vedere Implementazione della barra di stato in MFC e Impostazione della modalità di un oggetto CStatusBarCtrl.
Esempio
Il primo esempio di codice definisce una variabile, m_statusBar
, usata per accedere al controllo della barra di stato corrente. Questa variabile viene usata nell'esempio riportato di seguito.
public:
CStatusBarCtrl m_statusBar;
Nell'esempio di codice seguente un'icona viene copiata in due riquadri del controllo barra di stato corrente. In una sezione precedente dell'esempio di codice è stato creato un controllo barra di stato con tre riquadri e quindi è stata aggiunta un'icona al primo riquadro. Questo esempio recupera l'icona dal primo riquadro e quindi la aggiunge al secondo e al terzo riquadro.
// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);
CStatusBarCtrl::GetParts
Recupera un conteggio delle parti in un controllo barra di stato.
int GetParts(
int nParts,
int* pParts) const;
Parametri
nParts
Numero di parti per cui recuperare le coordinate. Se questo parametro è maggiore del numero di parti nel controllo, il messaggio recupera le coordinate solo per le parti esistenti.
pParts
Indirizzo di una matrice integer con lo stesso numero di elementi del numero di parti specificato da nParts. Ogni elemento nella matrice riceve la coordinata client del bordo destro della parte corrispondente. Se un elemento è impostato su - 1, la posizione del bordo destro per tale parte si estende al bordo destro della barra di stato.
Valore restituito
Numero di parti nel controllo in caso di esito positivo o zero in caso contrario.
Osservazioni:
Questa funzione membro recupera anche la coordinata del bordo destro del numero specificato di parti.
Esempio
int pParts[2];
int nParts = m_wndSBC.GetParts(2, pParts);
CStatusBarCtrl::GetRect
Recupera il rettangolo di delimitazione di una parte in un controllo barra di stato.
BOOL GetRect(
int nPane,
LPRECT lpRect) const;
Parametri
nPane
Indice in base zero della parte il cui rettangolo di delimitazione deve essere recuperato.
lpRect
Indirizzo di una struttura RECT che riceve il rettangolo di delimitazione.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Esempio
CRect rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
CStatusBarCtrl::GetText
Recupera il testo dalla parte specificata di un controllo barra di stato.
CString GetText(
int nPane,
int* pType = NULL) const;
int GetText(
LPCTSTR lpszText,
int nPane,
int* pType = NULL) const;
Parametri
lpszText
Indirizzo del buffer che riceve il testo. Questo parametro è una stringa con terminazione Null.
nPane
Indice in base zero della parte da cui recuperare il testo.
pType
Puntatore a un numero intero che riceve le informazioni sul tipo. Il tipo può essere uno dei valori seguenti:
0 Il testo viene disegnato con un bordo da visualizzare inferiore al piano della barra di stato.
SBT_NOBORDERS Il testo viene disegnato senza bordi.
SBT_POPOUT Il testo viene disegnato con un bordo da visualizzare più alto del piano della barra di stato.
SBT_OWNERDRAW Se il testo ha il tipo di disegno SBT_OWNERDRAW, pType riceve questo messaggio e restituisce il valore a 32 bit associato al testo anziché alla lunghezza e al tipo di operazione.
Valore restituito
Lunghezza, in caratteri, del testo o CString contenente il testo corrente.
Esempio
int nType;
TCHAR *pszPaneOneText;
pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
delete pszPaneOneText;
CStatusBarCtrl::GetTextLength
Recupera la lunghezza, in caratteri, del testo dalla parte specificata di un controllo barra di stato.
int GetTextLength(
int nPane,
int* pType = NULL) const;
Parametri
nPane
Indice in base zero della parte da cui recuperare il testo.
pType
Puntatore a un numero intero che riceve le informazioni sul tipo. Il tipo può essere uno dei valori seguenti:
0 Il testo viene disegnato con un bordo da visualizzare inferiore al piano della barra di stato.
SBT_NOBORDERS Il testo viene disegnato senza bordi.
SBT_OWNERDRAW Il testo viene disegnato dalla finestra padre.
SBT_POPOUT Il testo viene disegnato con un bordo da visualizzare più alto del piano della barra di stato.
Valore restituito
Lunghezza, in caratteri, del testo.
Esempio
int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
CStatusBarCtrl::GetTipText
Recupera il testo della descrizione comando per un riquadro in una barra di stato.
CString GetTipText(int nPane) const;
Parametri
nPane
Indice in base zero del riquadro barra di stato per ricevere il testo della descrizione comando.
Valore restituito
Oggetto CString contenente il testo da utilizzare nella descrizione comando.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 SB_GETTIPTEXT, come descritto in Windows SDK.
Esempio
CString csPane0TipText = m_wndSBC.GetTipText(0);
CStatusBarCtrl::IsSimple
Controlla un controllo finestra di stato per determinare se è in modalità semplice.
BOOL IsSimple() const;
Valore restituito
Diverso da zero se il controllo finestra di stato è in modalità semplice; in caso contrario, zero.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 SB_ISSIMPLE, come descritto in Windows SDK.
CStatusBarCtrl::SetBkColor
Imposta il colore di sfondo in una barra di stato.
COLORREF SetBkColor(COLORREF cr);
Parametri
Cr
Valore COLORREF che specifica il nuovo colore di sfondo. Specificare il valore CLR_DEFAULT per fare in modo che la barra di stato usi il colore di sfondo predefinito.
Valore restituito
Valore COLORREF che rappresenta il colore di sfondo predefinito precedente.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 SB_SETBKCOLOR, come descritto in Windows SDK.
Esempio
m_wndSBC.SetBkColor(RGB(0, 0, 250));
HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));
CStatusBarCtrl::SetIcon
Imposta l'icona per un riquadro in una barra di stato.
BOOL SetIcon(
int nPane,
HICON hIcon);
Parametri
nPane
Indice in base zero del riquadro che riceverà l'icona. Se questo parametro è -1, si presuppone che la barra di stato sia una barra di stato semplice.
hIcon
Handle per l'icona da impostare. Se questo valore è NULL, l'icona viene rimossa dalla parte.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 SB_SETICON, come descritto in Windows SDK.
Esempio
Vedere l'esempio per CStatusBarCtrl::SetBkColor.
CStatusBarCtrl::SetMinHeight
Imposta l'altezza minima dell'area di disegno di un controllo barra di stato.
void SetMinHeight(int nMin);
Parametri
nMin
Altezza minima, in pixel, del controllo.
Osservazioni:
L'altezza minima è la somma di nMin e due volte la larghezza, in pixel, del bordo verticale del controllo barra di stato.
Esempio
m_wndSBC.SetMinHeight(40);
CStatusBarCtrl::SetParts
Imposta il numero di parti in un controllo barra di stato e la coordinata del bordo destro di ogni parte.
BOOL SetParts(
int nParts,
int* pWidths);
Parametri
nParts
Numero di parti da impostare. Il numero di parti non può essere maggiore di 255.
pWidths
Indirizzo di una matrice integer con lo stesso numero di elementi delle parti specificate da nParts. Ogni elemento nella matrice specifica la posizione, nelle coordinate client, del bordo destro della parte corrispondente. Se un elemento è - 1, la posizione del bordo destro per tale parte si estende al bordo destro del controllo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Esempio
const int c_nParts = 4;
CRect rect;
m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
-1};
VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));
CStatusBarCtrl::SetSimple
Specifica se un controllo barra di stato visualizza testo semplice o visualizza tutte le parti di controllo impostate da una chiamata precedente a SetParts.
BOOL SetSimple(BOOL bSimple = TRUE);
Parametri
bSimple
[in] Flag di tipo visualizzato. Se questo parametro è TRUE, il controllo visualizza testo semplice; se è FALSE, vengono visualizzate più parti.
Valore restituito
Restituisce sempre 0.
Osservazioni:
Se l'applicazione modifica il controllo barra di stato da non semplice a semplice o viceversa, il sistema ridisegna immediatamente il controllo.
CStatusBarCtrl::SetText
Imposta il testo nella parte specificata di un controllo barra di stato.
BOOL SetText(
LPCTSTR lpszText,
int nPane,
int nType);
Parametri
lpszText
Indirizzo di una stringa con terminazione null che specifica il testo da impostare. Se nType è SBT_OWNERDRAW, lpszText rappresenta 32 bit di dati.
nPane
Indice in base zero della parte da impostare. Se questo valore è 255, si presuppone che il controllo barra di stato sia un controllo semplice solo con una parte.
nType
Tipo di operazione di disegno. Per un elenco dei possibili valori, vedere SB_SETTEXT messaggio .
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Il messaggio invalida la parte del controllo che è stata modificata, causando la visualizzazione del nuovo testo quando il controllo riceverà il messaggio di WM_PAINT.
Esempio
VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));
CStatusBarCtrl::SetTipText
Imposta il testo della descrizione comando per un riquadro in una barra di stato.
void SetTipText(
int nPane,
LPCTSTR pszTipText);
Parametri
nPane
Indice in base zero del riquadro barra di stato per ricevere il testo della descrizione comando.
pszTipText
Puntatore a una stringa contenente il testo della descrizione comando.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 SB_SETTIPTEXT, come descritto in Windows SDK.
Esempio
m_wndSBC.SetTipText(0, _T("This is Pane 0"));