Spécifier les pages de propriétés
Lorsque vous créez un contrôle ActiveX, vous souhaiterez souvent l'associer à des 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 d' ISpecifyPropertyPages pour découvrir que des pages de propriétés peuvent être utilisé pour définir les propriétés de votre contrôle. Vous devrez implémenter cette interface sur votre contrôle.
Pour implémenter ISpecifyPropertyPages à l'aide de ATL, effectuez les étapes suivantes :
Dérivez votre classe d' ISpecifyPropertyPagesImpl.
Ajoutez une entrée pour ISpecifyPropertyPages au mappage COM de votre classe.
Ajoutez une entrée de PROP_PAGE au mappage des propriétés pour chaque page associée à votre contrôle.
Notes
Lorsque la génération d'un contrôle standard à l'aide de L'Assistant Contrôle ATL, vous devez uniquement ajouter des entrées d' PROP_PAGE au mappage de propriété.l'assistant génère le code nécessaire pour les autres étapes.
Les conteneurs polis afficheront les pages de propriétés spécifiées dans le même ordre que les entrées d' PROP_PAGE dans le mappage de propriétés. En général, vous devez mettre les entrées standard de page de propriétés après que les entrées pour vos pages personnalisées dans le mappage de propriété, afin que les utilisateurs voient des pages spécifiques à votre première du contrôle.
Exemple
La classe suivante pour un contrôle calendar utilise l'interface d' ISpecifyPropertyPages pour indiquer aux conteneurs que ses propriétés peuvent être définies à une page personnalisée de date et la page de cotations boursières de couleur.
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.