Controlli ActiveX MFC: aggiunta di un'altra pagina delle proprietà personalizzata
Talvolta, un controllo ActiveX avrà più proprietà che potrà accedere adattarsi a una pagina delle proprietà. In questo caso, è possibile aggiungere pagine delle proprietà al controllo ActiveX per visualizzare queste proprietà.
In questo articolo viene illustrato aggiungere nuove pagine delle proprietà a un controllo ActiveX che già dispone di almeno una pagina delle proprietà. Per ulteriori informazioni sulle pagine delle proprietà di azione (tipo di carattere, immagini, o color), vedere l'articolo Controlli ActiveX MFC: Utilizzando pagine delle proprietà predefinite.
Le procedure riportate di seguito viene utilizzato un framework di controlli ActiveX di esempio creato dalla Creazione guidata controllo ActiveX. Pertanto, i nomi delle classi e gli identificatori siano univoci a questo esempio.
Per ulteriori informazioni sull'utilizzo delle pagine delle proprietà in un controllo ActiveX, vedere gli articoli seguenti:
Controlli ActiveX MFC: Utilizzando pagine delle proprietà predefinite
Nota
Si consiglia delle nuove pagine delle proprietà sono conformi allo standard di dimensioni per le pagine delle proprietà del controllo ActiveX.Le pagine delle proprietà predefinite e colore dell'immagine misurano le unità della finestra di dialogo (DLU 250x62).La pagina standard di proprietà del tipo di carattere è 250x110 DLU.La pagina delle proprietà predefinita creata dalla Creazione guidata controllo ActiveX utilizza lo standard di 250x62 DLU.
Per inserire un nuovo modello della pagina proprietà del progetto
Con il progetto di controllo, 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 di Finestra di dialogo e selezionare IDD_OLE_PROPPAGE_SMALL.
Fare clic New per aggiungere la risorsa al progetto.
Selezionare il nuovo modello della pagina delle proprietà per aggiornare la Finestra Proprietà.
Immettere un nuovo valore per la proprietà di ID. In questo esempio viene utilizzato IDD_PROPPAGE_NEWPAGE.
Fare clic su Salva sulla barra degli strumenti.
Per associare il nuovo modello con una classe
Aprire 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, quindi Aggiungi classe.
Verrà visualizzata la finestra di dialogo Aggiungere la classe.
Fare doppio clic sul modello di Classe MFC.
Nella casella di Nome classe in Creazione guidata classe MFC, digitare un nome per la nuova classe della finestra di dialogo. In questo esempio, CAddtlPropPage).
Se si desidera modificare i nomi di file, fare clic Modifica. Digitare i nomi dell'implementazione e file di intestazione, o accettare i nomi predefiniti.
Nella casella di Classe base , COlePropertyPageselezionato.
Nella casella di ID finestra di dialogo , IDD_PROPPAGE_NEWPAGEselezionato.
Scegliere Fine per creare la classe.
Per consentire agli utenti di accedere alla nuova pagina delle proprietà, apportare le seguenti modifiche sezione della pagina delle proprietà ID del controllo alla macro (trovi 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 di una macro di BEGIN_PROPPAGEIDS (conteggio) della pagina delle proprietà da 1 a 2.
È inoltre necessario modificare il file di implementazione di controllo (.CPP) per includere l'intestazione (. H) file della classe della pagina delle proprietà.
Il passaggio successivo consiste nel creare due risorse di tipo stringa che forniranno un nome di tipo e una didascalia per la nuova pagina delle proprietà.
Per aggiungere nuove risorse di tipo stringa in una pagina delle proprietà
Con il progetto di controllo, aprire visualizzazione risorse.
Fare doppio clic su cartella Tabella di stringhe quindi fare doppio clic sulla risorsa esistente della tabella di stringhe a cui si desidera aggiungere una stringa.
Verrà visualizzata la tabella di stringhe in una finestra.
Selezionare la riga vuota alla fine della tabella di stringhe e digitare il testo, o la barra del titolo, della stringa: ad esempio, "pagina delle proprietà aggiuntive."
Viene visualizzata una pagina di Proprietà stringhe che mostra Titolo e le caselle di ID. La casella di Titolo contiene la stringa digitata.
Nella casella di ID, selezionare o immettere l'id della stringa. Premere invio in al termine.
In questo esempio viene utilizzato IDS_SAMPLE_ADDPAGE per il nome del tipo di una nuova pagina delle proprietà.
Ripetere i passaggi 3 e 4 utilizzando IDS_SAMPLE_ADDPPG_CAPTION per l'id e "la pagina delle proprietà aggiuntive" per caption.
Nel file di .CPP della nuova classe della pagina delle proprietà (in questo esempio, CAddtlPropPage) modificare CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry in modo che IDS_SAMPLE_ADDPAGE venga passato da AfxOleRegisterPropertyPageClass, come nel seguente esempio:
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 da passare IDS_SAMPLE_ADDPPG_CAPTION al costruttore di COlePropertyPage, come segue:
CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Dopo aver effettuato la ricompilazione necessaria di modifiche il progetto e utilizzare tale test container per testare la nuova pagina delle proprietà. Per ulteriori informazioni sulla modalità di accesso a Test Container, vedere Verifica di proprietà ed eventi tramite Test Container.