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:

Per inserire un nuovo modello di pagina delle proprietà nel progetto

  1. Con il progetto di controllo aperto, aprire Visualizzazione risorse nell'area di lavoro del progetto.

  2. Fare clic con il pulsante destro del mouse in Visualizzazione risorse per aprire il menu di scelta rapida e scegliere Aggiungi risorsa.

  3. Espandere il nodo Finestra di dialogo e selezionare IDD_OLE_PROPPAGE_SMALL.

  4. Fare clic su Nuovo per aggiungere la risorsa al progetto.

  5. Selezionare il nuovo modello di pagina delle proprietà per aggiornare la finestra Proprietà (in Visualizzazione risorse).

  6. Immettere un nuovo valore per la proprietà ID . Questo esempio usa IDD_PROPPAGE_NEWPAGE.

  7. Fare clic su Save sulla barra degli strumenti.

Per associare il nuovo modello a una classe

  1. Aprire la visualizzazione classi.

  2. Fare clic con il pulsante destro del mouse in Visualizzazione classi per aprire il menu di scelta rapida.

  3. Scegliere Aggiungi dal menu di scelta rapida e quindi fare clic su Aggiungi classe.

    Viene visualizzata la finestra di dialogo Aggiungi classe.

  4. Fare doppio clic sul modello classe MFC.

  5. Nella casella Nome classe della Creazione guidata classe MFC digitare un nome per la nuova classe di dialogo. (In questo esempio, CAddtlPropPage.)

  6. 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.

  7. Nella casella Classe di base selezionare COlePropertyPage.

  8. Nella finestra di dialogo ID selezionare IDD_PROPPAGE_NEWPAGE.

  9. 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à

  1. Con il progetto di controllo aperto, aprire Visualizzazione risorse.

  2. 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.

  3. 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.

  4. 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à.

  5. Ripetere i passaggi 3 e 4 usando IDS_SAMPLE_ADDPPG_CAPTION per l'ID e la "Pagina delle proprietà aggiuntive" per il didascalia.

  6. Nel. Il file CPP della nuova classe della pagina delle proprietà (in questo esempio ) CAddtlPropPagemodifica in CAddtlPropPage::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);
    }
    
  7. Modificare il costruttore di CAddtlPropPage in modo che IDS_SAMPLE_ADDPPG_CAPTION venga passato al COlePropertyPage 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 .

Vedi anche

Controlli ActiveX MFC