Controlli ActiveX MFC: pagine delle proprietà
Le pagine delle proprietà consentono all'utente di un controllo ActiveX di visualizzare e modificare le proprietà del controllo stesso. Per accedere a queste proprietà occorre richiamare una finestra di dialogo delle proprietà del controllo contenente una o più pagine delle proprietà che forniscono un'interfaccia grafica personalizzata per la visualizzazione e la modifica delle proprietà del controllo stesso.
Le pagine delle proprietà di controllo ActiveX vengono visualizzate in due modi:
Quando il verbo delle proprietà del controllo (OLEIVERB_PROPERTIES) viene richiamato, il controllo apre una finestra di dialogo modale della proprietà contenente le pagine delle proprietà del controllo.
Il contenitore consente di visualizzare la relativa finestra di dialogo non modale che mostra le pagine delle proprietà del controllo selezionato.
La finestra di dialogo proprietà (illustrata nella figura seguente) contiene un'area per visualizzare la pagina delle proprietà corrente, le schede per passare tra le pagine delle proprietà e una raccolta di pulsanti che eseguono attività comuni quali chiudere la finestra di dialogo della pagina delle proprietà, annullando tutte le modifiche apportate, o applicando immediatamente le modifiche al controllo ActiveX.
Finestra di Dialogo Proprietà
Questo articolo illustra gli argomenti correlati a utilizzare le pagine delle proprietà in un controllo ActiveX. tra cui:
Implementare la pagina delle proprietà predefinita per un controllo ActiveX
Aggiunta di controlli a una pagina delle proprietà
Personalizzare la funzione DoDataExchange
Per ulteriori informazioni sull'utilizzo delle pagine delle proprietà in un controllo ActiveX, vedere gli articoli seguenti:
Controlli ActiveX MFC: aggiunta di un'altra pagina delle proprietà personalizzata
Controlli ActiveX MFC: utilizzo delle pagine delle proprietà predefinite
Per informazioni sull'utilizzo delle finestre delle proprietà in un'applicazione MFC diverso da un controllo ActiveX, vedere Finestre delle proprietà (MFC).
Implementazione della pagina di proprietà predefinita
Se si utilizza la Creazione guidata del controllo ActiveX per creare il progetto di controllo, la Creazione guidata del controllo ActiveX fornisce una classe della pagina di proprietà predefinita per il controllo derivato da Classe COlePropertyPage. Inizialmente, questa pagina delle proprietà è vuota, ma è possibile aggiungere qualsiasi controllo di finestra di dialogo o gruppo di controlli a essa. Poiché la Creazione guidata del controllo ActiveX crea un'unica classe della pagina delle proprietà per impostazione predefinita, le classi aggiuntive della pagina delle proprietà (anche derivate da COlePropertyPage) devono essere creati mediante Visualizzazione classi. Per ulteriori informazioni su questa procedura, vedere Controlli ActiveX MFC: aggiunta di un'altra pagina delle proprietà personalizzata.
L'implementazione di una pagina delle proprietà (in questo caso, quella predefinita) si suddivide in tre passaggi:
Implementare una pagina delle proprietà
Aggiungere una classe derivata COlePropertyPage al progetto di controllo. Se il progetto è stato creato mediante la Creazione guidata del controllo ActiveX (come in questo caso), la classe della pagina delle proprietà predefinita già esiste.
Utilizzare l'editor delle finestre di dialogo per aggiungere controlli al modello della pagina delle proprietà.
Personalizzare la funzione DoDataExchange della classe derivata COlePropertyPage per scambiare i valori tra il controllo della pagina delle proprietà e il controllo ActiveX.
Ad esempio, le procedure seguenti utilizzano un controllo semplice (denominato "Esempio"). L'esempio è stato creato mediante la Creazione guidata del controllo ActiveX e contiene solo la proprietà predefinita della barra del titolo.
Aggiunta di Controlli a una Pagina delle Proprietà
Aggiungere controlli a una pagina delle proprietà
Con il progetto di controllo, aprire Visualizzazione Risorse.
Fare doppio clic sull'icona della directory Finestra di dialogo.
Aprire la finestra di dialogo IDD_PROPPAGE_SAMPLE .
La Creazione guidata del controllo ActiveX aggiunge il nome del progetto alla fine dell'ID della finestra di dialogo, in questo caso, Esempio.
Trascinare il controllo selezionato dalla casella degli strumenti nell'area della finestra di dialogo.
Per questo esempio, un controllo con etichetta di testo "Titolo :" e un controllo casella di modifica con un identificatore IDC_CAPTION sono sufficienti.
Fare clic su Salva sulla barra degli strumenti delle applicazioni per salvare le modifiche.
Ora che l'interfaccia utente è stata modificata, è necessario collegare la casella di modifica alla proprietà Caption. Questa operazione viene eseguita nella sezione seguente modificando la funzione CSamplePropPage::DoDataExchange.
Personalizzare la Funzione DoDataExchange
La funzione CWnd::DoDataExchange della pagina delle proprietà consente di collegare i valori della pagina proprietà con valori effettivi delle proprietà del controllo. Per stabilire collegamenti, è necessario eseguire il mapping dei campi appropriati della pagina delle proprietà con le rispettive proprietà del controllo.
Le associazioni sono implementate utilizzando le funzioni DDP_ della pagina delle proprietà. Le funzioni DDP_ lavorano come le funzioni DDX_ utilizzate nelle finestre di dialogo standard di MFC, con un'eccezione. Oltre al riferimento a una variabile membro, le funzioni DDP_ accettano il nome della proprietà del controllo. Di seguito viene fornita una voce tipica nella funzione DoDataExchange per una pagina delle proprietà.
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
Questa funzione associa la variabile membro m_caption della pagina delle proprietà con la barra del titolo, utilizzando la funzione DDP_TEXT.
Dopo aver inserito il controllo della pagina delle proprietà, è necessario stabilire un collegamento tra il controllo della pagina delle proprietà, IDC_CAPTION e l'effettiva proprietà del controllo, barra del titolo, utilizzando la funzione DDP_Text come descritto in precedenza.
Pagine delle proprietà (MFC) è disponibile per altri tipi di controllo della finestra di dialogo, quali caselle di controllo, pulsanti di opzione e le caselle di riepilogo. La tabella seguente elenca l'intero set di funzioni DDP_ della pagina delle proprietà e i loro scopi:
Funzioni della pagina delle proprietà
Nome della funzione |
Utilizzare questa funzione per creare un collegamento |
---|---|
DDP_CBIndex |
L'indice della stringa selezionata in una casella combinata con una proprietà del controllo. |
DDP_CBString |
La stringa selezionata in una casella combinata con una proprietà del controllo. La stringa selezionata può iniziare con le stesse lettere del valore della proprietà ma non deve corrisponderla completamente. |
DDP_CBStringExact |
La stringa selezionata in una casella combinata con una proprietà del controllo. La stringa selezionata e il valore stringa della proprietà devono corrispondere esattamente. |
DDP_Check |
Una casella di controllo con una proprietà del controllo. |
DDP_LBIndex |
L'indice della stringa selezionata in una casella di riepilogo con una proprietà del controllo. |
DDP_LBString |
La stringa selezionata in una casella di riepilogo con una proprietà del controllo. La stringa selezionata può iniziare con le stesse lettere del valore della proprietà ma non deve corrisponderla completamente. |
DDP_LBStringExact |
La stringa selezionata in una casella di riepilogo con una proprietà del controllo. La stringa selezionata e il valore stringa della proprietà devono corrispondere esattamente. |
DDP_Radio |
Un pulsante di opzione con una proprietà del controllo. |
DDP_Text |
Testo con una proprietà del controllo. |