Specifica delle pagine delle proprietà
Quando si crea un controllo ActiveX, spesso si desidera associarlo alle pagine delle proprietà che possono essere usate per impostare le proprietà del controllo. I contenitori di controlli usano l'interfaccia ISpecifyPropertyPages
per scoprire quali pagine delle proprietà possono essere usate per impostare le proprietà del controllo. Sarà necessario implementare questa interfaccia nel controllo.
Per implementare l'uso di ISpecifyPropertyPages
ATL, seguire questa procedura:
Derivare la classe da ISpecifyPropertyPagesImpl.
Aggiungere una voce per
ISpecifyPropertyPages
alla mappa COM della classe.Aggiungere una voce PROP_PAGE alla mappa delle proprietà per ogni pagina associata al controllo.
Nota
Quando si genera un controllo standard tramite la Creazione guidata controllo ATL, è necessario aggiungere solo le voci PROP_PAGE alla mappa delle proprietà. La procedura guidata genera il codice necessario per gli altri passaggi.
I contenitori con comportamento corretto visualizzeranno le pagine delle proprietà specificate nello stesso ordine delle voci PROP_PAGE nella mappa delle proprietà. In genere, è consigliabile inserire voci standard della pagina delle proprietà dopo le voci per le pagine personalizzate nella mappa delle proprietà, in modo che gli utenti visualizzino prima le pagine specifiche del controllo.
Esempio
La classe seguente per un controllo calendario usa l'interfaccia ISpecifyPropertyPages
per indicare ai contenitori che le relative proprietà possono essere impostate usando una pagina data personalizzata e la pagina colori di magazzino.
class ATL_NO_VTABLE CMyCtrl :
OtherInterfaces
public ISpecifyPropertyPagesImpl<CMyCtrl>
{
public:
BEGIN_COM_MAP(CMyCtrl)
OtherComMapEntries
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()
BEGIN_PROP_MAP(CMyCtrl)
OtherPropMapEntries
PROP_PAGE(CLSID_DatePage)
PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
// Remainder of class declaration omitted.