Partager via


Lorsque les gestionnaires de mise à jour sont appelés

Supposons que l'utilisateur clique sur la souris dans le menu Fichier, qui génère un message d' WM_INITMENUPOPUP .Le mécanisme de mise à jour de l'infrastructure met à jour collectivement tous les éléments du menu Fichier avant que le menu suivants vers le bas afin que l'utilisateur puisse le consultez.

Pour cela, les itinéraires d'infrastructure mettent à jour des commandes pour tous les éléments du menu popup le long de le routage des commandes standard.Les cibles de la commande sur le routage ont la possibilité de mettre à jour tous les éléments de menu en correspondant à la commande de mise à jour avec une entrée de la table des messages appropriée (du formulaire ON_UPDATE_COMMAND_UI) et en appelant une fonction « gestionnaire de mise à jour ».Ainsi, pour un menu avec six éléments de menu, six commandes de mise à jour sont destinées.Si un gestionnaire de mise à jour existe pour l'ID de commande de l'élément de menu, il est appelé pour mettre à jour.Sinon, l'infrastructure vérifie l'existence d'un gestionnaire de cet ID de commande et active ou désactive l'élément de menu selon le cas.

Si l'infrastructure ne trouve pas l'entrée d' ON_UPDATE_COMMAND_UI pendant le routage des commandes, elle vérifie automatiquement l'objet d'interface utilisateur s'il y a une entrée d' ON_COMMAND quelque part avec la même ID de commandeSinon, elle efface l'objet d'interface utilisateur.Par conséquent, vous assurer qu'un objet d'interface utilisateur est activée, vous devez fournir un gestionnaire pour la commande que l'objet se produit ou fournissez un gestionnaire de mise à jour pour lui.Voir la figure dans la rubrique Objets interface utilisateur et ID de commande.

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

L'initialisation de menu est automatiquement dans l'infrastructure, qui se produisent lorsque l'application reçoit un message d' WM_INITMENUPOPUP .Pendant la boucle inactive, l'infrastructure recherche le routage des commandes pour les gestionnaires de mise à jour de la même manière que pour les menus.

Voir aussi

Concepts

Comment : Objets interface utilisateur de mise à jour