Propriétés du contrôle
en plus des propriétés définies et implémentées par le contrôle lui-même, ActiveX technologies de contrôle implique également :
-
Propriétés ambiantes
-
Celles-ci sont exposées par le conteneur via un site client de contrôle afin de fournir des valeurs environnementales qui s’appliquent à tous les contrôles incorporés dans le conteneur. Par exemple, un conteneur peut fournir une couleur d’arrière-plan par défaut ou une police par défaut que le contrôle peut utiliser. Les propriétés ambiantes sont exposées par le biais de IDispatch implémenté sur l’objet site d’un conteneur. Le conteneur appelle la méthode IOleControl :: OnAmbientPropertyChange du contrôle quand l’une de ses propriétés ambiantes change la valeur. En réponse, un contrôle peut avoir besoin de mettre à jour son propre état interne ou visuel en réponse. Le conteneur indique la propriété ambiante qui a changé avec le paramètre DISPID ou peut passer DISPID _ Unknown pour indiquer que plusieurs propriétés ambiantes ont changé.
-
Propriétés étendues
-
Ils sont implémentés par un conteneur pour encapsuler les contrôles qu’il contient pour fournir des propriétés gérées par le conteneur qui s’affichent comme s’il s’agissait de propriétés de contrôle natif. Le conteneur peut agréger le contrôle, en ajoutant les propriétés étendues pour compléter ou substituer les propriétés du contrôle. L’objet agrégé est appelé un contrôle étendu. Pour le conteneur, le contrôle étendu apparaît comme le contrôle lui-même et les propriétés étendues semblent être exposées par le contrôle. Le conteneur prend en charge un contrôle étendu par le biais de sa méthode de site client IOleControlSite :: GetExtendedControl. La méthode GetExtendedControl permet aux contrôles de naviguer dans le site jusqu’à l’objet de contrôle étendu fourni pour eux par le conteneur, si le conteneur prend en charge cette fonctionnalité. Un conteneur peut également choisir d’afficher les pages de propriétés de ses contrôles étendus, en plus des pages qu’un contrôle spécifie normalement par le biais de ISpecifyPropertyPages. Pour cette raison, un contrôle doit demander à un conteneur d’afficher un frame de propriété avant que le contrôle ne tente de le faire. Le contrôle appelle IOleControlSite :: ShowPropertyFrame pour effectuer cette opération. Si le conteneur implémente cette fonction, il affiche le frame de propriété lui-même ; Si la méthode retourne une erreur, le contrôle peut afficher le frame de propriété.
Pour plus d'informations, voir les rubriques suivantes :