Partager via


Désactiver l'activation lorsque option visible

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.

Comparé avec le reste de l'initialisation généralement exécutée par un contrôle ActiveX, la création d'une fenêtre est une opération très coûteuse.Idéalement, un contrôle diffèrerait créer sa fenêtre jusqu'à absolument nécessaire.

De nombreux contrôles n'ont pas besoin d'être actif le temps entier ils sont visibles dans un conteneur.Souvent, un contrôle peut rester dans l'état inactif jusqu'à ce que l'utilisateur effectue une opération qui requiert que celui-ci soit active (par exemple, cliquer dessus avec la souris ou appuie sur la touche TAB).Pour faire de rester un contrôle inactif jusqu ' à le conteneur doit l'activer, supprimez la balise d' OLEMISC_ACTIVATEWHENVISIBLE des diverses balises du contrôle :

static const DWORD BASED_CODE _dwNVC_MFC_AxOptOleMisc =
   OLEMISC_SETCLIENTSITEFIRST |
   OLEMISC_INSIDEOUT |
   OLEMISC_CANTLINKINSIDE |
   OLEMISC_RECOMPOSEONRESIZE;

La balise d' OLEMISC_ACTIVATEWHENVISIBLE est automatiquement omis si vous désactivez l'option d' Activate When Visible dans la page de contrôlez les paramètres de l'Assistant Contrôle ActiveX MFC lorsque vous créez votre contrôle.

Voir aussi

Concepts

Contrôles ActiveX MFC : optimisation