Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
La bibliothèque Microsoft Foundation Classes (MFC) continue d’être prise en charge. Toutefois, nous n’ajoutons plus de fonctionnalités ni ne mettons à jour la documentation.
Cet article explique les techniques que vous pouvez utiliser pour optimiser vos contrôles ActiveX pour de meilleures performances.
Importante
ActiveX est une technologie héritée qui ne doit pas être utilisée pour le nouveau développement. Pour plus d’informations sur les technologies modernes qui remplacent ActiveX, consultez Contrôles ActiveX.
Les rubriques Désactivation de l'option Activer lorsque visible et Fournir une interaction à la souris lorsque inactif discutent des contrôles qui ne créent pas de fenêtre tant qu’ils n’ont pas été activés. La rubrique Fourniture d’activation sans fenêtre décrit les contrôles qui ne créent jamais de fenêtre, même lorsqu’elles sont activées.
Windows présente deux inconvénients majeurs pour les objets OLE : ils empêchent les objets d’être transparents ou nonrectangulaires lorsqu’ils sont actifs et ajoutent une surcharge importante à l’instanciation et à l’affichage des contrôles. En règle générale, la création d’une fenêtre prend 60 % du temps de création d’un contrôle. Avec une seule fenêtre partagée (généralement celle du conteneur) et un code de répartition, un contrôle reçoit les mêmes services de fenêtre, généralement sans perte de performances. La présence d’une fenêtre est principalement une complexité inutile pour l’objet.
Certaines optimisations n’améliorent pas nécessairement les performances lorsque votre contrôle est utilisé dans certains conteneurs. Par exemple, les conteneurs publiés avant 1996 ne prenaient pas en charge l’activation sans fenêtre. Par conséquent, l’implémentation de cette fonctionnalité ne fournira pas d’avantages dans les anciens conteneurs. Toutefois, presque chaque conteneur prend en charge la persistance. L’optimisation du code de persistance de votre contrôle améliore probablement ses performances dans n’importe quel conteneur. Si votre contrôle est spécifiquement destiné à être utilisé avec un type particulier de conteneur, vous pouvez rechercher laquelle de ces optimisations est prise en charge par ce conteneur. En général, toutefois, vous devez essayer d’implémenter autant de ces techniques que possible et applicables à votre contrôle particulier pour vous assurer que votre contrôle fonctionne aussi bien que possible dans une grande variété de conteneurs.
Vous pouvez implémenter une grande partie de ces optimisations via l’Assistant Contrôle ActiveX MFC, dans la page Paramètres du contrôle .
Options d’optimisation OLE de l’Assistant Contrôle ActiveX MFC
| Paramètres de contrôle dans l'Assistant de contrôle ActiveX MFC | Action | Plus d’informations |
|---|---|---|
| Activer lorsque la case à cocher est visible | Effacer | Désactivation de l’option Activer lorsque visible |
| Case à cocher Activation sans fenêtre | Sélectionnez | Mise à disposition de l’activation sans fenêtre |
| Case à cocher Contexte de périphérique non découpé | Sélectionnez | Utilisation d’un contexte de périphérique non découpé |
| Case à cocher Activation sans scintillement | Sélectionnez | Mise à disposition de l'activation sans scintillement |
| Notifications de pointeur de souris lorsque la case à cocher est inactive | Sélectionnez | Fournir une interaction avec la souris en cas d’inactivité |
| Case à cocher Code de dessin optimisé | Sélectionnez | Optimisation du dessin de contrôle |
Pour plus d’informations sur les fonctions membres qui implémentent ces optimisations, consultez COleControl.
Pour plus d’informations, consultez :