Classe CMFCHeaderCtrl
La classe supporta l'ordinamento CMFCHeaderCtrl
di più colonne in un controllo intestazione.
Sintassi
class CMFCHeaderCtrl : public CHeaderCtrl
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CMFCHeaderCtrl::CMFCHeaderCtrl | Costruisce un oggetto CMFCHeaderCtrl . |
CMFCHeaderCtrl::~CMFCHeaderCtrl |
Distruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CMFCHeaderCtrl::EnableMultipleSort | Abilita o disabilita la modalità di ordinamento di più colonne per il controllo intestazione corrente. |
CMFCHeaderCtrl::GetColumnState | Indica se una colonna non è ordinata o è ordinata in ordine crescente o decrescente. |
CMFCHeaderCtrl::GetSortColumn | Recupera l'indice in base zero della prima colonna ordinata nel controllo intestazione. |
CMFCHeaderCtrl::GetThisClass |
Usato dal framework per ottenere un puntatore all'oggetto CRuntimeClass associato a questo tipo di classe. |
CMFCHeaderCtrl::IsAscending | Indica se una colonna nel controllo intestazione è ordinata in ordine crescente. |
CMFCHeaderCtrl::IsDialogControl | Indica se la finestra padre del controllo intestazione corrente è una finestra di dialogo. |
CMFCHeaderCtrl::IsMultipleSort | Indica se il controllo intestazione corrente è in modalità di ordinamento di più colonne. |
CMFCHeaderCtrl::RemoveSortColumn | Rimuove la colonna specificata dall'elenco di colonne di ordinamento. |
CMFCHeaderCtrl::SetSortColumn | Imposta l'ordinamento di una colonna specificata in un controllo intestazione. |
Metodi protetti
Nome | Descrizione |
---|---|
CMFCHeaderCtrl::OnDrawItem | Chiamato dal framework per disegnare una colonna di controllo intestazione. |
CMFCHeaderCtrl::OnDrawSortArrow | Chiamato dal framework per disegnare la freccia di ordinamento. |
CMFCHeaderCtrl::OnFillBackground | Chiamato dal framework per riempire lo sfondo di una colonna del controllo intestazione. |
Esempio
Nell'esempio seguente viene illustrato come costruire un oggetto della CMFCHeaderCtrl
classe e come abilitare la modalità di ordinamento di più colonne per il controllo intestazione corrente.
CMFCHeaderCtrl *headerCtrl = new CMFCHeaderCtrl();
headerCtrl->EnableMultipleSort();
Osservazioni:
La CMFCHeaderCtrl
classe disegna una freccia di ordinamento su una colonna del controllo intestazione per indicare che la colonna è ordinata. Utilizzare la modalità di ordinamento di più colonne se un set di colonne nel controllo elenco padre ( classe CMFCListCtrl) può essere ordinato contemporaneamente.
Gerarchia di ereditarietà
Requisiti
Intestazione: afxheaderctrl.h
CMFCHeaderCtrl::CMFCHeaderCtrl
Costruisce un oggetto CMFCHeaderCtrl
.
CMFCHeaderCtrl::CMFCHeaderCtrl()
Osservazioni:
Questo costruttore inizializza le variabili membro seguenti nei valori specificati:
Variabile membro | Valore |
---|---|
m_bIsMousePressed |
FALSE |
m_bMultipleSort |
FALSE |
m_bAscending |
TRUE |
m_nHighlightedItem |
-1 |
m_bTracked |
FALSE |
m_bIsDlgControl |
FALSE |
m_hFont |
NULL |
CMFCHeaderCtrl::EnableMultipleSort
Abilita o disabilita la modalità di ordinamento di più colonne per il controllo intestazione corrente.
void EnableMultipleSort(BOOL bEnable=TRUE);
Parametri
bEnable
[in] TRUE per abilitare la modalità di ordinamento di più colonne; FALSE per disabilitare la modalità di ordinamento di più colonne e rimuovere tutte le colonne dall'elenco di colonne ordinate. Il valore predefinito è TRUE.
Osservazioni:
Utilizzare questo metodo per abilitare o disabilitare la modalità di ordinamento di più colonne. Due o più colonne possono partecipare a un ordinamento se il controllo intestazione è in modalità di ordinamento a più colonne.
CMFCHeaderCtrl::GetColumnState
Indica se una colonna non è ordinata o è ordinata in ordine crescente o decrescente.
int GetColumnState(int iColumn) const;
Parametri
iColumn
[in] Indice in base zero di una colonna.
Valore restituito
Valore che indica lo stato di ordinamento della colonna specificata. La tabella seguente elenca i possibili valori:
valore | Descrizione |
---|---|
-1 | Ordinato in ordine decrescente. |
0 | Non ordinato. |
1 | Ordinato in ordine crescente. |
Osservazioni:
CMFCHeaderCtrl::GetSortColumn
Recupera l'indice in base zero della prima colonna ordinata nel controllo intestazione.
int GetSortColumn() const;
Valore restituito
Indice di una colonna ordinata o -1 se non viene trovata alcuna colonna ordinata.
Osservazioni:
Se il controllo intestazione è in modalità di ordinamento di più colonne e l'applicazione è stata compilata in modalità di debug, questo metodo asserisce e consiglia di usare il metodo CMFCHeaderCtrl::GetColumnState . Se il controllo intestazione è in modalità di ordinamento a più colonne e l'applicazione è stata compilata in modalità definitiva, questo metodo restituisce -1.
CMFCHeaderCtrl::IsAscending
Indica se una colonna nel controllo intestazione è ordinata in ordine crescente.
BOOL IsAscending() const;
Valore restituito
TRUE se una colonna nel controllo intestazione è ordinata in ordine crescente; in caso contrario, FALSE.
Osservazioni:
Il valore restituito da questo metodo viene utilizzato per visualizzare la freccia di ordinamento appropriata sull'elemento del controllo intestazione. Utilizzare il metodo CMFCHeaderCtrl::SetSortColumn per impostare l'ordinamento.
CMFCHeaderCtrl::IsDialogControl
Indica se la finestra padre del controllo intestazione corrente è una finestra di dialogo.
BOOL IsDialogControl() const;
Valore restituito
TRUE se la finestra padre del controllo intestazione corrente è una finestra di dialogo; in caso contrario, FALSE.
CMFCHeaderCtrl::IsMultipleSort
Indica se il controllo intestazione corrente è in modalità di ordinamento di più colonne.
BOOL IsMultipleSort() const;
Valore restituito
TRUE se è abilitata la modalità di ordinamento di più colonne; in caso contrario, FALSE.
Osservazioni:
Usare il metodo CMFCHeaderCtrl::EnableMultipleSort per abilitare o disabilitare la modalità di ordinamento di più colonne. Due o più colonne possono partecipare a un ordinamento se il controllo intestazione è in modalità di ordinamento a più colonne.
CMFCHeaderCtrl::OnDrawItem
Chiamato dal framework per disegnare una colonna di controllo intestazione.
virtual void OnDrawItem(
CDC* pDC,
int iItem,
CRect rect,
BOOL bIsPressed,
BOOL bIsHighlighted);
Parametri
pDC
[in] Puntatore a un contesto di dispositivo.
iItem
[in] Indice in base zero dell'elemento da disegnare.
rect
[in] Rettangolo di delimitazione dell'elemento da disegnare.
bIsPressed
[in] TRUE per disegnare l'elemento in stato premuto; in caso contrario, FALSE.
bIsHighlighted
[in] TRUE per disegnare l'elemento nello stato evidenziato; in caso contrario, FALSE.
CMFCHeaderCtrl::OnDrawSortArrow
Chiamato dal framework per disegnare la freccia di ordinamento.
virtual void OnDrawSortArrow(
CDC* pDC,
CRect rectArrow);
Parametri
pDC
[in] Puntatore a un contesto di dispositivo.
rectArrow
[in] Rettangolo di delimitazione della freccia di ordinamento.
CMFCHeaderCtrl::OnFillBackground
Chiamato dal framework per riempire lo sfondo di una colonna del controllo intestazione.
virtual void OnFillBackground(CDC* pDC);
Parametri
pDC
[in] Puntatore a un contesto di dispositivo.
Osservazioni:
CMFCHeaderCtrl::RemoveSortColumn
Rimuove la colonna specificata dall'elenco di colonne di ordinamento.
void RemoveSortColumn(int iColumn);
Parametri
iColumn
[in] Indice in base zero della colonna da rimuovere.
CMFCHeaderCtrl::SetSortColumn
Imposta l'ordinamento di una colonna specificata in un controllo intestazione.
void SetSortColumn(
int iColumn,
BOOL bAscending=TRUE,
BOOL bAdd=FALSE);
Parametri
iColumn
[in] Indice in base zero di una colonna del controllo intestazione. Se questo parametro è minore di zero, questo metodo rimuove tutte le colonne dall'elenco di colonne di ordinamento.
bAscending
[in] Specifica l'ordinamento della colonna specificata dal parametro iColumn . TRUE per impostare l'ordine crescente; FALSE per impostare l'ordine decrescente. Il valore predefinito è TRUE.
bAdd
[in] TRUE per impostare l'ordinamento della colonna specificata dal parametro iColumn .
Se il controllo intestazione corrente è in modalità di ordinamento di più colonne, questo metodo aggiunge la colonna specificata all'elenco di colonne di ordinamento. Usare CMFCHeaderCtrl::EnableMultipleSort per impostare la modalità di ordinamento di più colonne.
Se la modalità di ordinamento di più colonne non è impostata e questo metodo viene compilato in modalità di debug, questo metodo asserisce. Se la modalità di ordinamento di più colonne non è impostata e questo metodo viene compilato in modalità definitiva, questo metodo rimuove prima tutte le colonne dall'elenco di colonne di ordinamento e quindi aggiunge la colonna specificata all'elenco.
FALSE per rimuovere prima tutte le colonne dall'elenco di colonne di ordinamento e quindi aggiungere la colonna specificata all'elenco. Il valore predefinito è FALSE.
Osservazioni:
Utilizzare questo metodo per impostare l'ordinamento di una colonna. Se necessario, questo metodo aggiunge la colonna all'elenco di colonne di ordinamento. Il controllo intestazione usa l'ordinamento per disegnare una freccia di ordinamento che punta verso l'alto o verso il basso.