Partager via


Lorsque des gestionnaires de mise à jour sont appelés

Supposons que l'utilisateur clique dans le menu Fichier, ce qui génère un message WM_INITMENUPOPUP. Le mécanisme de mise à jour du framework met à jour collectivement tous les éléments du menu Fichier avant que le mense se déroule afin que l'utilisateur puisse le voir.

Pour cela, le framework route des commandes de mise à jour des commandes pour tous les éléments du menu dans le menu contextuel sur le routage des commandes standard. Les cibles de la commande du routage ont la possibilité de mettre à jour tous les éléments de menu en faisant correspondre la commande de mise à jour avec une entrée de la table des messages appropriée (au format ON_UPDATE_COMMAND_UI) et en appelant la fonction « gestionnaire de mise à jour ». Par conséquent, pour un menu avec six éléments de menu, six commandes de mise à jour sont envoyées. Si le conseiller de mise à jour existe pour l'ID de commande de l'élément de menu, elle est appelée pour effectuer la mise à jour. Sinon, l'infrastructure vérifie l'existence d'un gestionnaire pour cet ID de commande et active ou désactive l'élément de menu comme il convient.

Si le frameworkne trouve pas d'entrée ON_UPDATE_COMMAND_UI pendant le routage des commandes, il active automatiquement l'objet d'interface utilisateur s'il y a une entrée ON_COMMAND quelque part avec le même ID de commande. Sinon, elle désactive l'objet d'interface utilisateur. Par conséquent, pour vous assurer qu'un objet d'interface utilisateur est activé, fournissez un gestionnaire pour que la commande que l'objet génère ou fournissez un gestionnaire de mise à jour pour celle-ci. Consultez l'exemple dans la rubrique Objets d'interface utilisateur et ID de commande.

Il est possible de désactiver par la désactivation défaut des objets interface utilisateur. Pour plus d'informations, consultez la fonction membre de m_bAutoMenuEnable de la classe CFrameWnd dans le guide MFC.

L'initialisation de menu est automatique dans le framework, survenant lorsque l'application reçoit un message WM_INITMENUPOPUP. Lors de la boucle inactive, lle framework recherche le routage des commandes pour les gestionnaires de mise à jour du bouton de la même façon que pour les menus.

Voir aussi

Concepts

Comment : Objets interface utilisateur de mise à jour