Contrôles ActiveX MFC
Un contrôle ActiveX est un composant logiciel réutilisable qui repose sur la notion de modèle d'objet composant (COM, Component Object Model), prend en charge une large gamme de fonctionnalités OLE et peut être personnalisé pour répondre à de nombreux besoins logiciels.Les contrôles ActiveX sont conçus pour être utilisés dans des conteneurs de contrôles ActiveX ordinaires et sur Internet, dans les pages dans des pages Web.Vous pouvez créer des contrôles ActiveX avec MFC, décrite ici, ou avec ATL (ATL).
Un contrôle ActiveX peut se dessiner dans une fenêtre, répondent aux événements (tels que les clics de souris), et soient gérés via une interface qui inclut des propriétés et des méthodes similaires à celles des objets Automation.
Ces contrôles peuvent être développés pour de nombreuses fonctionnalités, telles que l'accès aux bases de données, l'analyse de données, ou le graphique.En dehors de leur portabilité, la prise en charge des contrôles ActiveX comporte précédemment pas disponible aux contrôles ActiveX, tels que la compatibilité avec les conteneurs OLE existants et la possibilité d'intégrer leurs menus avec les menus de conteneur OLE.En outre, un contrôle ActiveX prend complètement en charge l'automation, qui autorise le contrôle à l'exposition lue \ aux propriétés d'écriture et à un jeu de méthodes qui peuvent être appelées par l'utilisateur.
Vous pouvez créer des contrôles ActiveX sans fenêtre et les contrôles qui créent uniquement une fenêtre lorsqu'ils deviennent actifs.Les contrôles sans fenêtre accélèrent l'affichage de votre application et permettent de disposer des contrôles transparents et nonrectangular.Vous pouvez également charger des propriétés du contrôle ActiveX de façon asynchrone.
Un contrôle ActiveX est implémenté en tant que serveur in-process (en général un petit objet) qui peut être utilisé dans tout conteneur OLE.Notez que les fonctionnalités complètes d'un contrôle ActiveX est disponible uniquement lorsqu'elle est utilisée dans un conteneur OLE conçu pour connaître les contrôles ActiveX.Consultez Contrôles ActiveX de port par d'autres applications pour obtenir la liste des conteneurs qui prennent en charge des contrôles ActiveX.Ce type de conteneur, ci-après appelé « conteneur de contrôle, » peut utiliser un contrôle ActiveX à l'aide de propriétés et des méthodes du contrôle, et reçoit des notifications du contrôle ActiveX sous la forme d'événements.l'illustration suivante montre cette interaction.
Interaction entre un conteneur de contrôles ActiveX et un contrôle ActiveX avec fenêtres
Pour des informations récentes sur l'optimisation vos contrôles ActiveX, consultez Contrôles ActiveX MFC : optimisation.
Pour créer un contrôle ActiveX MFC, consultez créez un projet de contrôle ActiveX.
Pour plus d'informations, consultez :
Composants de base d'un contrôle ActiveX
Un contrôle ActiveX utilise plusieurs éléments de programmation pour interagir efficacement avec un conteneur de contrôle et avec l'utilisateur.Ce sont classe COleControl, un ensemble de fonctions de déclenchement d'événements, et d'une table de dispatch.
Chaque objet contrôle ActiveX que vous développez hérite d'un puissant ensemble de fonctionnalités de sa classe de base MFC, COleControl.Ces fonctionnalités incluent l'activation sur place, et la logique d'automation.COleControl peut fournir à l'objet contrôle les mêmes fonctionnalités que l'objet window de MFC, plus la possibilité de déclencher des événements.COleControl peut également fournir contrôles sans fenêtre, qui s'appuient sur leur conteneur pour obtenir de l'aide sur une partie des fonctionnalités qu'une fenêtre la fournit (capture de la souris, focus clavier, faites défiler), mais sur affichage beaucoup plus rapide d'offrir.
Étant donné que la classe de contrôle dérive d' COleControl, elle hérite de la fonction d'envoyer, ou « déclencheurs », des messages, événements appelés, au conteneur de contrôle lorsque certaines conditions sont remplies.Ces événements sont utilisés pour informer le conteneur de contrôle lorsque quelque chose d'important se produit dans le contrôle.Vous pouvez envoyer des informations supplémentaires à propos d'un événement au conteneur de contrôle en joignant des paramètres à l'événement.Pour plus d'informations sur les événements de contrôle ActiveX, consultez l'article Contrôles ActiveX MFC : événements.
Le dernier élément est une table de dispatch, qui est utilisée pour exposer un ensemble de fonctions (méthodes appelées) et d'attributs (appelées propriétés) à l'utilisateur.Les propriétés permettent au conteneur de contrôle ou à l'utilisateur de contrôle pour manipuler le contrôle de plusieurs façons.L'utilisateur peut modifier l'apparence du contrôle, modifier certaines valeurs du contrôle, ou faire des demandes du contrôle, telles qu'accéder à une partie spécifique de données que le contrôle conserve.Cette interface est déterminée par le développeur de contrôle et est définie à l'aide Affichage de classes.Pour plus d'informations sur les méthodes et les propriétés du contrôle ActiveX, consultez les articles Contrôles ActiveX MFC : méthodes et propriétés.
Interaction entre les contrôles avec windows et conteneurs de contrôle ActiveX
Lorsqu'un contrôle est utilisé dans un conteneur de contrôle, il utilise deux mécanismes pour communiquer : il expose des propriétés et des méthodes, et il déclenche des événements.L'illustration suivante montre comment ces deux méthodes sont implémentés.
Communication entre un conteneur de contrôles ActiveX et un contrôle ActiveX
L'illustration précédente montre également comment d'autres interfaces OLE (en plus de l'automation et les événements) sont gérées par les contrôles.
Toutes les communications d'un contrôle avec le conteneur est exécutée par COleControl.Pour traiter certaines des demandes du conteneur, COleControl appelle les fonctions membres qui sont implémentées dans la classe de contrôle.Toutes les méthodes et certaines propriétés sont gérées de cette façon.La classe de votre contrôle peut également initialiser la communication avec le conteneur par les fonctions membres de l' COleControl.Les événements sont déclenchées de cette manière.
États actifs et inactifs d'un contrôle ActiveX
Un contrôle a deux états de base : actif et inactif.Traditionnellement, ces rapports ont été distingués par si le contrôle a eu une fenêtre.Un contrôle actif avait une fenêtre ; un contrôle inactif n'a pas effectué.Avec l'introduction de l'activation sans fenêtre, cette différence n'est plus universelle, mais applique cependant encore à de nombreux contrôles.
Lorsque contrôle sans fenêtre disparaît actif, il appelle la capture de la souris, le focus clavier, le défilement, et d'autres services de fenêtre de son conteneur.Vous pouvez également fournissez l'interaction souris aux contrôles inactifs, ainsi que de créer des contrôles qui attendez à activé pour créer une fenêtre.
Lorsqu'un contrôle à une fenêtre devient actif, il peut interagir entièrement avec le conteneur de contrôle, l'utilisateur, les fenêtres et.L'illustration suivante présente les voies de communication entre le contrôle ActiveX, le conteneur de contrôle, et le système d'exploitation.
Traitement des messages windows dans un contrôle ActiveX avec fenêtres si l'option correspondante est activée)
Sérialisation
La capacité de sérialisation des données, parfois connues sous le nom de la persistance, permet au contrôle pour entrer la valeur de ses propriétés au stockage persistant.Les contrôles peuvent ensuite être recréés en lisant l'état de l'objet de stockage.
Notez qu'un contrôle n'est pas chargé d'accéder au support de stockage.À la place, le conteneur du contrôle permet de fournir au contrôle un support de stockage à l'utilisation des temps appropriés.Pour plus d'informations sur la sérialisation, consultez l'article Contrôles ActiveX MFC : sérialiser.Pour plus d'informations sur l'optimisation la sérialisation, consultez l' optimiser la persistance et l'initialisation dans les contrôles ActiveX : optimisation.
Installer des classes et des outils de contrôle ActiveX
Lorsque vous installez Visual C++, les DLL du runtime du contrôle ActiveX de classes de contrôle ActiveX MFC et de version commerciale et de débogage sont installés automatiquement si les contrôles ActiveX sont sélectionnés dans l'installation (ils sont sélectionnés par défaut).
Par défaut, les classes de contrôle ActiveX et les outils sont installés dans les sous-répertoires suivants sous \Program Files\Microsoft Visual Studio.NET :
\Common7\Tools
Contient les fichiers de Test Container (TstCon32.exe, ainsi que ses fichiers d'aide).
\Vc 7 \ atlmfc \ include
Contient les fichiers Include nécessaires pour développer des contrôles ActiveX avec MFC
\Vc 7 \ atlmfc \ \ cpc src
Contient le code source des classes spécifiques des contrôles ActiveX dans MFC
\Vc 7 \ atlmfc \ lib
Contient les bibliothèques nécessaires pour développer des contrôles ActiveX avec MFC
Il existe également des exemples pour les contrôles ActiveX MFC.Pour plus d'informations sur ces exemples, consultez l' Exemples : Contrôles ActiveX MFC