Contrôles ActiveX MFC : méthodes
Un contrôle ActiveX déclenche des événements pour communiquer entre lui-même et son conteneur de contrôle. Un conteneur peut également communiquer avec un contrôle à l’aide de méthodes et de propriétés. Les méthodes sont également appelées fonctions.
Les méthodes et les propriétés fournissent une interface exportée à utiliser par d’autres applications, telles que les clients Automation et les conteneurs de contrôle ActiveX. Pour plus d’informations sur les propriétés de contrôle ActiveX, consultez l’article MFC Contrôles ActiveX : Propriétés.
Les méthodes sont similaires à l’utilisation et à l’objectif des fonctions membres d’une classe C++. Il existe deux types de méthodes que votre contrôle peut implémenter : stock et personnalisé. Comme pour les événements boursiers, les méthodes de stock sont les méthodes pour lesquelles COleControl fournit une implémentation. Pour plus d’informations sur les méthodes de stock, consultez l’article MFC ActiveX Controls : Adding Stock Methods. Les méthodes personnalisées, définies par le développeur, permettent une personnalisation supplémentaire du contrôle. Pour plus d’informations, consultez l’article Contrôles ActiveX MFC : Ajout de méthodes personnalisées.
Microsoft Foundation Class Library (MFC) implémente un mécanisme qui permet à votre contrôle de prendre en charge les méthodes stock et personnalisées. La première partie est la classe COleControl
. Dérivées de CWnd
, COleControl
les fonctions membres prennent en charge les méthodes stock qui sont communes à tous les contrôles ActiveX. La deuxième partie de ce mécanisme est la carte de répartition. Une carte de répartition est similaire à une carte de messages ; Toutefois, au lieu de mapper une fonction à un ID de message Windows, une carte de distribution map mappe les fonctions membres virtuelles à IDispatch IDS.
Pour qu’un contrôle prend en charge correctement différentes méthodes, sa classe doit déclarer une carte de répartition. Pour ce faire, la ligne de code suivante se trouve dans l’en-tête de classe de contrôle (. Fichier H) :
DECLARE_DISPATCH_MAP()
L’objectif principal du mappage de répartition est d’établir la relation entre les noms de méthode utilisés par un appelant externe (tel que le conteneur) et les fonctions membres de la classe du contrôle qui implémentent les méthodes. Une fois la carte de répartition déclarée, elle doit être définie dans l’implémentation du contrôle (. Fichier CPP). Les lignes de code suivantes définissent la carte de répartition :
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
Si vous avez utilisé l’Assistant Contrôle ActiveX MFC pour créer le projet, ces lignes ont été ajoutées automatiquement. Si l’Assistant Contrôle ActiveX MFC n’a pas été utilisé, vous devez ajouter ces lignes manuellement.
Les articles suivants décrivent en détail les méthodes :