Controlli ActiveX MFC: aggiunta di un'altra pagina delle proprietà personalizzata
In alcuni casi, un controllo ActiveX avrà più proprietà di quanto possa ragionevolmente adattarsi a una pagina delle proprietà. In questo caso, è possibile aggiungere pagine delle proprietà al controllo ActiveX per visualizzare queste proprietà.
Questo articolo illustra l'aggiunta di nuove pagine delle proprietà a un controllo ActiveX che dispone già di almeno una pagina delle proprietà. Per altre informazioni sull'aggiunta di pagine delle proprietà predefinite (tipo di carattere, immagine o colore), vedere l'articolo Controlli ActiveX MFC: Uso delle pagine delle proprietà stock.
Le procedure seguenti usano un framework di controllo ActiveX di esempio creato dalla Creazione guidata controllo ActiveX. Di conseguenza, i nomi e gli identificatori di classe sono univoci per questo esempio.
Per altre informazioni sull'uso delle pagine delle proprietà in un controllo ActiveX, vedere gli articoli seguenti:
Controlli ActiveX MFC: uso delle pagine delle proprietà predefinite
Nota
È consigliabile che le nuove pagine delle proprietà rispettino lo standard delle dimensioni per le pagine delle proprietà del controllo ActiveX. Le pagine delle proprietà stock picture e color misurano 250x62 finestre di dialogo (DLU). La pagina delle proprietà del tipo di carattere standard è 250x110 DLL. La pagina delle proprietà predefinita creata dalla Creazione guidata controllo ActiveX usa lo standard DLU 250x62.
Per inserire un nuovo modello di pagina delle proprietà nel progetto
Con il progetto di controllo aperto, aprire Visualizzazione risorse nell'area di lavoro del progetto.
Fare clic con il pulsante destro del mouse in Visualizzazione risorse per aprire il menu di scelta rapida e scegliere Aggiungi risorsa.
Espandere il nodo Finestra di dialogo e selezionare IDD_OLE_PROPPAGE_SMALL.
Fare clic su Nuovo per aggiungere la risorsa al progetto.
Selezionare il nuovo modello di pagina delle proprietà per aggiornare la finestra Proprietà (in Visualizzazione risorse).
Immettere un nuovo valore per la proprietà ID . Questo esempio usa IDD_PROPPAGE_NEWPAGE.
Fare clic su Save sulla barra degli strumenti.
Per associare il nuovo modello a una classe
Aprire la visualizzazione classi.
Fare clic con il pulsante destro del mouse in Visualizzazione classi per aprire il menu di scelta rapida.
Scegliere Aggiungi dal menu di scelta rapida e quindi fare clic su Aggiungi classe.
Viene visualizzata la finestra di dialogo Aggiungi classe.
Fare doppio clic sul modello classe MFC.
Nella casella Nome classe della Creazione guidata classe MFC digitare un nome per la nuova classe di dialogo. (In questo esempio,
CAddtlPropPage
.)Per modificare i nomi dei file, fare clic su Cambia. Digitare i nomi per i file di implementazione e intestazione oppure accettare i nomi predefiniti.
Nella casella Classe di base selezionare
COlePropertyPage
.Nella finestra di dialogo ID selezionare IDD_PROPPAGE_NEWPAGE.
Fare clic su Fine per creare la classe.
Per consentire agli utenti del controllo di accedere a questa nuova pagina delle proprietà, apportare le modifiche seguenti alla sezione macro ID pagina delle proprietà del controllo (che si trova nel file di implementazione del controllo):
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
Si noti che è necessario aumentare il secondo parametro della macro BEGIN_PROPPAGEIDS (il conteggio delle pagine delle proprietà) da 1 a 2.
È inoltre necessario modificare il file di implementazione del controllo (. File CPP) per includere l'intestazione (. H) file della nuova classe della pagina delle proprietà.
Il passaggio successivo prevede la creazione di due nuove risorse stringa che forniranno un nome di tipo e un didascalia per la nuova pagina delle proprietà.
Per aggiungere nuove risorse stringa a una pagina delle proprietà
Con il progetto di controllo aperto, aprire Visualizzazione risorse.
Fare doppio clic sulla cartella Tabella stringhe e quindi fare doppio clic sulla risorsa tabella di stringhe esistente a cui si desidera aggiungere una stringa.
Verrà aperta la tabella di stringhe in una finestra.
Selezionare la riga vuota alla fine della tabella di stringhe e digitare il testo, o didascalia, della stringa, ad esempio "Pagina proprietà aggiuntiva".
Verrà visualizzata una pagina Proprietà stringa che mostra le caselle Didascalia e ID . La casella Caption contiene la stringa digitata.
Nella casella ID selezionare o digitare un ID per la stringa. Al termine, premere INVIO.
Questo esempio usa IDS_SAMPLE_ADDPAGE per il nome del tipo della nuova pagina delle proprietà.
Ripetere i passaggi 3 e 4 usando IDS_SAMPLE_ADDPPG_CAPTION per l'ID e la "Pagina delle proprietà aggiuntive" per il didascalia.
Nel. Il file CPP della nuova classe della pagina delle proprietà (in questo esempio )
CAddtlPropPage
modifica inCAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry
modo che IDS_SAMPLE_ADDPAGE venga passato da AfxOleRegisterPropertyPageClass, come nell'esempio seguente:BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister) { if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_SAMPLE_ADDPAGE); else return AfxOleUnregisterClass(m_clsid, NULL); }
Modificare il costruttore di
CAddtlPropPage
in modo che IDS_SAMPLE_ADDPPG_CAPTION venga passato alCOlePropertyPage
costruttore, come indicato di seguito:CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Dopo aver apportato le modifiche necessarie ricompilare il progetto e usare Contenitore di test per testare la nuova pagina delle proprietà. Per informazioni su come accedere al Test Container, vedere Test di proprietà ed eventi con Test Container .