Partager via


Spécification des pages de propriétés

Lorsque vous créez un contrôle ActiveX, vous souhaiterez souvent l’associer aux pages de propriétés qui peuvent être utilisées pour définir les propriétés de votre contrôle. Les conteneurs de contrôle utilisent l’interface ISpecifyPropertyPages pour savoir quelles pages de propriétés peuvent être utilisées pour définir les propriétés de votre contrôle. Vous devez implémenter cette interface sur votre contrôle.

Pour implémenter ISpecifyPropertyPages à l’aide d’ATL, procédez comme suit :

  1. Dérivez votre classe de ISpecifyPropertyPagesImpl.

  2. Ajoutez une entrée pour ISpecifyPropertyPages la carte COM de votre classe.

  3. Ajoutez une entrée PROP_PAGE au mappage de propriétés pour chaque page associée à votre contrôle.

Remarque

Lors de la génération d’un contrôle standard à l’aide de l’Assistant Contrôle ATL, vous devez uniquement ajouter les entrées PROP_PAGE au mappage de propriétés. L’Assistant génère le code nécessaire pour les autres étapes.

Les conteneurs bien comportementés affichent les pages de propriétés spécifiées dans le même ordre que les entrées PROP_PAGE dans le mappage de propriétés. En règle générale, vous devez placer les entrées de page de propriétés standard après les entrées de vos pages personnalisées dans le mappage de propriétés, afin que les utilisateurs voient d’abord les pages spécifiques à votre contrôle.

Exemple

La classe suivante pour un contrôle de calendrier utilise l’interface ISpecifyPropertyPages pour indiquer aux conteneurs que ses propriétés peuvent être définies à l’aide d’une page de dates personnalisée et de la page de couleur de stock.

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.

Voir aussi

Pages de propriétés
Exemple ATLPages