Classe CMFCPropertySheet

La classe CMFCPropertySheet supporta una finestra delle proprietà in cui ogni pagina delle proprietà è identificata da una scheda, un pulsante della barra degli strumenti, un nodo del controllo dell'albero o un elemento di elenco.

Sintassi

class CMFCPropertySheet : public CPropertySheet

Membri

Costruttori pubblici

Nome Descrizione
CMFCPropertySheet::CMFCPropertySheet Costruisce un oggetto CMFCPropertySheet.
CMFCPropertySheet::~CMFCPropertySheet Distruttore.

Metodi pubblici

Nome Descrizione
CMFCPropertySheet::AddPage Aggiunge una pagina alla finestra delle proprietà.
CMFCPropertySheet::AddPageToTree Aggiunge una nuova pagina delle proprietà al controllo albero.
CMFCPropertySheet::AddTreeCategory Aggiunge un nuovo nodo al controllo dell'albero.
CMFCPropertySheet::EnablePageHeader Riserva spazio nella parte superiore di ogni pagina per creare un'intestazione personalizzata.
CMFCPropertySheet::GetHeaderHeight Recupera l'altezza dell'intestazione corrente.
CMFCPropertySheet::GetLook Recupera il valore di enumerazione che specifica l'aspetto della finestra delle proprietà corrente.
CMFCPropertySheet::GetNavBarWidth Recupera la larghezza della barra di navigazione in pixel.
CMFCPropertySheet::GetTab Recupera l'oggetto del controllo Struttura a schede interno che supporta il controllo corrente della finestra delle proprietà.
CMFCPropertySheet::GetThisClass Usato dal framework per ottenere un puntatore all'oggetto CRuntimeClass associato a questo tipo di classe.
CMFCPropertySheet::InitNavigationControl Inizializza l'aspetto del controllo corrente della finestra delle proprietà.
CMFCPropertySheet::OnActivatePage Chiamato dal framework quando una pagina delle proprietà è abilitata.
CMFCPropertySheet::OnDrawPageHeader Chiamato dal framework per creare un'intestazione pagina delle proprietà personalizzata.
CMFCPropertySheet::OnInitDialog Gestisce il messaggio di WM_INITDIALOG . (sostituzioni )CPropertySheet::OnInitDialog.)
CMFCPropertySheet::OnRemoveTreePage Chiamato dal framework per rimuovere una pagina delle proprietà da un controllo albero.
CMFCPropertySheet::PreTranslateMessage Converte i messaggi della finestra prima che vengano inviati alle funzioni di Windows TranslateMessage e DispatchMessage . Esegue l'override di CPropertySheet::PreTranslateMessage.
CMFCPropertySheet::RemoveCategory Rimuove un nodo dal controllo albero.
CMFCPropertySheet::RemovePage Rimuove una pagina delle proprietà dalla finestra delle proprietà.
CMFCPropertySheet::SetIconsList Specifica l'elenco delle immagini usate nel controllo di navigazione del riquadro di Outlook.
CMFCPropertySheet::SetLook Specifica l'aspetto della finestra delle proprietà.

Osservazioni:

La classe CMFCPropertySheet rappresenta le finestre delle proprietà, note anche come finestre di dialogo a schede. La classe CMFCPropertySheet può visualizzare una pagina delle proprietà in vari modi.

Per usare la classe CMFCPropertySheet nell'applicazione,seguire questa procedura:

  1. Derivare una classe dalla classe CMFCPropertySheet e assegnare alla classe un nome, ad esempio, CMyPropertySheet.

  2. Costruire un oggetto CMFCPropertyPage per ogni pagina delle proprietà.

  3. Chiamare il metodo CMFCPropertySheet::SetLook nel costruttore CMyPropertySheet. Un parametro del metodo specifica che le pagine delle proprietà vengono visualizzate come schede nella parte superiore o sinistra della finestra delle proprietà; le schede nello stile di una finestra delle proprietà di Microsoft OneNote; i pulsanti su un controllo della barra degli strumenti di Microsoft Outlook; i nodi in un controllo dell'albero oppure come un elenco di elementi sul lato sinistro della finestra delle proprietà.

  4. Se si crea una finestra delle proprietà nello stile di una barra degli strumenti di Microsoft Outlook, chiamare il metodo CMFCPropertySheet::SetIconsList per associare un elenco di immagini alle pagine delle proprietà.

  5. Chiamare il metodo CMFCPropertySheet::AddPage per ogni pagina delle proprietà.

  6. Creare un controllo CMFCPropertySheet e chiamare il relativo metodo DoModal.

Illustrazioni

Nella figura seguente vengono illustrate una finestra delle proprietà nello stile della barra degli strumenti incorporata di Microsoft Outlook. La barra degli strumenti di Outlook viene visualizzata a sinistra della finestra delle proprietà.

Controlli colore CMFCPropertySheet.

La figura seguente illustra una finestra delle proprietà contenente un oggetto Classe CMFCPropertyGridCtrl. Tale oggetto è una finestra delle proprietà nello stile di una finestra delle proprietà dei controlli standard.

Controlli elenco e proprietà CMFCPropertySheet.

La figura seguente mostra una finestra delle proprietà nello stile di un controllo albero.

Albero delle proprietà.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCPropertySheet

Requisiti

Intestazione: afxpropertysheet.h

CMFCPropertySheet::AddPage

Aggiunge una pagina alla finestra delle proprietà.

void AddPage(CPropertyPage* pPage);

Parametri

pPage
[in] Puntatore a un oggetto pagina. Questo parametro non può essere NULL.

Osservazioni:

Questo metodo aggiunge la pagina delle proprietà specificata come scheda più a destra nella finestra delle proprietà. Utilizzare quindi questo metodo per aggiungere pagine in ordine da sinistra a destra.

Se la finestra delle proprietà è nello stile di Microsoft Outlook, il framework visualizza un elenco di pulsanti di spostamento a sinistra della finestra delle proprietà. Dopo che questo metodo aggiunge una pagina delle proprietà, aggiunge un pulsante corrispondente all'elenco. Per visualizzare una pagina delle proprietà, fare clic sul pulsante corrispondente. Per altre informazioni sugli stili delle finestre delle proprietà, vedere CMFCPropertySheet::SetLook.

CMFCPropertySheet::AddPageToTree

Aggiunge una nuova pagina delle proprietà al controllo albero.

void AddPageToTree(
    CMFCPropertySheetCategoryInfo* pCategory,
    CMFCPropertyPage* pPage,
    int nIconNum=-1,
    int nSelIconNum=-1);

Parametri

pCategory
[in] Puntatore a un nodo della struttura ad albero padre o NULL per associare la pagina specificata al nodo di primo livello. Chiamare il metodo CMFCPropertySheet::AddTreeCategory per ottenere questo puntatore.

pPage
[in] Puntatore a un oggetto pagina delle proprietà.

nIconNum
[in] Indice in base zero di un'icona o -1 se non viene usata alcuna icona. L'icona viene visualizzata accanto alla pagina delle proprietà del controllo albero quando la pagina non è selezionata. Il valore predefinito è -1.

nSelIconNum
[in] Indice in base zero di un'icona o -1 se non viene usata alcuna icona. L'icona viene visualizzata accanto alla pagina delle proprietà del controllo albero quando la pagina è selezionata. Il valore predefinito è -1.

Osservazioni:

Questo metodo aggiunge una pagina delle proprietà come foglia di un controllo albero. Per aggiungere una pagina delle proprietà, creare un CMFCPropertySheet oggetto, chiamare il metodo CMFCPropertySheet::SetLook con il parametro look impostato su CMFCPropertySheet::PropSheetLook_Treee quindi utilizzare questo metodo per aggiungere la pagina delle proprietà.

CMFCPropertySheet::AddTreeCategory

Aggiunge un nuovo nodo al controllo dell'albero.

CMFCPropertySheetCategoryInfo* AddTreeCategory(
    LPCTSTR lpszLabel,
    int nIconNum=-1,
    int nSelectedIconNum=-1,
    const CMFCPropertySheetCategoryInfo* pParentCategory=NULL);

Parametri

lpszLabel
[in] Nome del nodo.

nIconNum
[in] Indice in base zero di un'icona o -1 se non viene usata alcuna icona. L'icona viene visualizzata accanto alla pagina delle proprietà del controllo albero quando la pagina non è selezionata. Il valore predefinito è -1.

nSelectedIconNum
[in] Indice in base zero di un'icona o -1 se non viene usata alcuna icona. L'icona viene visualizzata accanto alla pagina delle proprietà del controllo albero quando la pagina è selezionata. Il valore predefinito è -1.

pParentCategory
[in] Puntatore a un nodo della struttura ad albero padre o NULL per associare la pagina specificata al nodo di primo livello. Impostare questo parametro con il metodo CMFCPropertySheet::AddTreeCategory .

Valore restituito

Puntatore al nuovo nodo nel controllo albero.

Osservazioni:

Utilizzare questo metodo per aggiungere un nuovo nodo, detto anche categoria, al controllo albero. Per aggiungere un nodo, creare un CMFCPropertySheet oggetto, chiamare il metodo CMFCPropertySheet::SetLook con il parametro look impostato su CMFCPropertySheet::PropSheetLook_Treee quindi usare questo metodo per aggiungere il nodo.

Utilizzare il valore restituito di questo metodo nelle chiamate successive a CMFCPropertySheet::AddPageToTree e CMFCPropertySheet::AddTreeCategory.

CMFCPropertySheet::CMFCPropertySheet

Costruisce un oggetto CMFCPropertySheet.

CMFCPropertySheet(
    UINT nIDCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

CMFCPropertySheet(
    LPCTSTR pszCaption,
    CWnd* pParentWnd=NULL,
    UINT iSelectPage=0);

Parametri

pszCaption
[in] Stringa contenente la didascalia della finestra delle proprietà. Non può essere NULL.

nIDCaption
[in] ID risorsa contenente la didascalia della finestra delle proprietà.

pParentWnd
[in] Puntatore alla finestra padre della finestra delle proprietà o NULL se la finestra padre è la finestra principale dell'applicazione. Il valore predefinito è NULL.

iSelectPage
[in] Indice in base zero della pagina delle proprietà superiore. Il valore predefinito è 0.

Osservazioni:

Per altre informazioni, vedere i parametri per il costruttore CPropertySheet::CPropertySheet .

CMFCPropertySheet::EnablePageHeader

Riserva spazio nella parte superiore di ogni pagina per creare un'intestazione personalizzata.

void EnablePageHeader(int nHeaderHeight);

Parametri

nHeaderHeight
[in] Altezza dell'intestazione, in pixel.

Osservazioni:

Per utilizzare il valore del parametro nHeaderHeight per disegnare un'intestazione personalizzata, eseguire l'override del metodo CMFCPropertySheet::OnDrawPageHeader .

CMFCPropertySheet::GetHeaderHeight

Recupera l'altezza dell'intestazione corrente.

int GetHeaderHeight() const;

Valore restituito

Altezza dell'intestazione, in pixel.

Osservazioni:

Chiamare il metodo CMFCPropertySheet::EnablePageHeader prima di chiamare questo metodo.

CMFCPropertySheet::GetLook

Recupera il valore di enumerazione che specifica l'aspetto della finestra delle proprietà corrente.

PropSheetLook GetLook() const;

Valore restituito

Uno dei valori di enumerazione che specifica l'aspetto della finestra delle proprietà. Per un elenco dei valori possibili, vedere la tabella di enumerazione nella sezione Osservazioni di CMFCPropertySheet::SetLook.

CMFCPropertySheet::GetNavBarWidth

Ottiene la larghezza della barra di spostamento.

int GetNavBarWidth() const;

Valore restituito

Larghezza della barra di spostamento in pixel.

CMFCPropertySheet::GetTab

Recupera l'oggetto del controllo Struttura a schede interno che supporta il controllo corrente della finestra delle proprietà.

CMFCTabCtrl& GetTab() const;

Valore restituito

Oggetto controllo struttura a schede interno.

Osservazioni:

È possibile impostare una finestra delle proprietà in modo che venga visualizzata in stili diversi, ad esempio un controllo albero, un elenco di pulsanti di spostamento o un set di pagine a schede.

Prima di chiamare questo metodo, chiamare il metodo CMFCPropertySheet::SetLook per impostare l'aspetto del controllo della finestra delle proprietà. Chiamare quindi il metodo CMFCPropertySheet::InitNavigationControl per inizializzare l'oggetto controllo struttura a schede interno. Utilizzare questo metodo per recuperare l'oggetto controllo struttura a schede e quindi utilizzare tale oggetto per utilizzare le schede nella finestra delle proprietà.

Questo metodo asserisce in modalità di debug se il controllo della finestra delle proprietà non è impostato per essere visualizzato nello stile di Microsoft OneNote.

CMFCPropertySheet::InitNavigationControl

Inizializza l'aspetto del controllo corrente della finestra delle proprietà.

virtual CWnd* InitNavigationControl();

Valore restituito

Puntatore alla finestra del controllo finestra delle proprietà.

Osservazioni:

Un controllo finestra delle proprietà può essere visualizzato in diversi formati, ad esempio un set di pagine a schede, un controllo struttura ad albero o un elenco di pulsanti di spostamento. Utilizzare il metodo CMFCPropertySheet::SetLook per specificare l'aspetto del controllo finestra delle proprietà.

CMFCPropertySheet::OnActivatePage

Chiamato dal framework quando una pagina delle proprietà è abilitata.

virtual void OnActivatePage(CPropertyPage* pPage);

Parametri

pPage
[in] Puntatore a un oggetto pagina delle proprietà che rappresenta la pagina delle proprietà abilitata.

Osservazioni:

Per impostazione predefinita, questo metodo garantisce che la pagina delle proprietà abilitata venga visualizzata. Se lo stile della finestra delle proprietà corrente contiene un riquadro di Microsoft Outlook, questo metodo imposta il pulsante di Outlook corrispondente sullo stato selezionato.

CMFCPropertySheet::OnDrawPageHeader

Chiamato dal framework per disegnare l'intestazione per una pagina delle proprietà personalizzata.

virtual void OnDrawPageHeader(
    CDC* pDC,
    int nPage,
    CRect rectHeader);

Parametri

pDC
[in] Puntatore a un contesto di dispositivo.

nPage
[in] Numero di pagina delle proprietà in base zero.

rectHeader
[in] Rettangolo di delimitazione che specifica dove disegnare l'intestazione.

Osservazioni:

Per impostazione predefinita, questo metodo non effettua alcuna operazione. Se si esegue l'override di questo metodo, chiamare il metodo CMFCPropertySheet::EnablePageHeader prima che il framework chiami questo metodo.

CMFCPropertySheet::OnRemoveTreePage

Chiamato dal framework per rimuovere una pagina delle proprietà da un controllo albero.

virtual BOOL OnRemoveTreePage(CPropertyPage* pPage);

Parametri

pPage
[in] Puntatore a un oggetto pagina delle proprietà che rappresenta la pagina delle proprietà da rimuovere.

Valore restituito

TRUE se questo metodo ha esito positivo; in caso contrario, FALSE.

CMFCPropertySheet::RemoveCategory

Rimuove un nodo dal controllo albero.

void RemoveCategory(CMFCPropertySheetCategoryInfo* pCategory);

Parametri

pCategory
[in] Puntatore a una categoria (nodo) da rimuovere.

Osservazioni:

Utilizzare questo metodo per rimuovere un nodo, detto anche categoria, da un controllo albero. Utilizzare il metodo CMFCPropertySheet::AddTreeCategory per aggiungere un nodo a un controllo albero.

CMFCPropertySheet::RemovePage

Rimuove una pagina delle proprietà dalla finestra delle proprietà.

void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);

Parametri

pPage
[in] Puntatore all'oggetto pagina delle proprietà che rappresenta la pagina delle proprietà da rimuovere. Non può essere NULL.

nPage
[in] Indice in base zero della pagina da rimuovere.

Osservazioni:

Questo metodo rimuove la pagina delle proprietà specificata e ne elimina definitivamente la finestra associata. L'oggetto pagina delle proprietà specificato dal parametro pPage non viene eliminato definitivamente fino alla chiusura della finestra CMFCPropertySheet .

CMFCPropertySheet::SetIconsList

Specifica l'elenco delle immagini usate nel controllo di navigazione del riquadro di Outlook.

BOOL SetIconsList(
    UINT uiImageListResID,
    int cx,
    COLORREF clrTransparent=RGB(255, 0, 255));
void SetIconsList(HIMAGELIST hIcons);

Parametri

uiImageListResID
[in] ID risorsa di un elenco di immagini.

cx
[in] Larghezza, in pixel, delle icone nell'elenco di immagini.

clrTransparent
[in] Colore dell'immagine trasparente. Le parti dell'immagine che sono questo colore saranno trasparenti. Il valore predefinito è il colore magenta, RGB(255,0,255).

hIcons
[in] Handle per un elenco di immagini esistente.

Valore restituito

Nella sintassi del primo overload del metodo, TRUE se questo metodo ha esito positivo; in caso contrario, FALSE.

Osservazioni:

Se la finestra delle proprietà è nello stile di Microsoft Outlook, il framework visualizza un elenco di pulsanti di spostamento, denominato controllo riquadro di Outlook, a sinistra della finestra delle proprietà. Utilizzare questo metodo per impostare l'elenco di immagini da utilizzare dal controllo riquadro di Outlook.

Per altre informazioni sui metodi che supportano questo metodo, vedere CImageList::Create e CImageList::Add. Per altre informazioni su come impostare lo stile di una finestra delle proprietà, vedere CMFCPropertySheet::SetLook.

CMFCPropertySheet::SetLook

Specifica l'aspetto della finestra delle proprietà.

void SetLook(
    PropSheetLook look,
    int nNavControlWidth=100);

Parametri

guardare
[in] Uno dei valori di enumerazione che specifica l'aspetto della finestra delle proprietà. Lo stile predefinito per una finestra delle proprietà è CMFCPropertySheet::PropSheetLook_Tabs. Per altre informazioni, vedere la tabella nella sezione Osservazioni di questo argomento.

nNavControlWidth
[in] Larghezza del controllo di spostamento, espressa in pixel. Il valore predefinito è 100.

Osservazioni:

Per visualizzare una finestra delle proprietà in uno stile diverso da quello predefinito, chiamare questo metodo prima di creare la finestra della finestra della finestra delle proprietà.

Nella tabella seguente sono elencati i valori di enumerazione che è possibile specificare nel parametro look .

valore Descrizione
CMFCPropertySheet::PropSheetLook_Tabs (Impostazione predefinita) Visualizza una scheda per ogni pagina delle proprietà. Le schede vengono visualizzate nella parte superiore della finestra delle proprietà e sono impilate se sono presenti più schede che si adattano a una singola riga.
CMFCPropertySheet::PropSheetLook_OutlookBar Visualizza un elenco di pulsanti di spostamento, nello stile della barra di Microsoft Outlook, sul lato sinistro della finestra delle proprietà. Ogni pulsante nell'elenco corrisponde a una pagina delle proprietà. Il framework visualizza le frecce di scorrimento se sono presenti più pulsanti che si adattano all'area visibile dell'elenco.
CMFCPropertySheet::PropSheetLook_Tree Visualizza un controllo albero sul lato sinistro della finestra delle proprietà. Ogni nodo padre o figlio del controllo albero corrisponde a una pagina delle proprietà. Il framework visualizza le frecce di scorrimento se sono presenti più nodi rispetto all'area visibile del controllo albero.
CMFCPropertySheet::PropSheetLook_OneNoteTabs Visualizza una scheda, nello stile di Microsoft OneNote, per ogni pagina delle proprietà. Il framework visualizza le schede nella parte superiore della finestra delle proprietà e le frecce di scorrimento se sono presenti più schede che si adattano a una singola riga.
CMFCPropertySheet::PropSheetLook_List Visualizza un elenco a sinistra della finestra delle proprietà. Ogni voce di elenco corrisponde a una pagina delle proprietà. Il framework visualizza le frecce di scorrimento se sono presenti più elementi dell'elenco rispetto all'area visibile dell'elenco.

Vedi anche

Grafico della gerarchia
Classi
Classe CMFCPropertyPage
Classe CMFCOutlookBar