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.
Supposons que l’utilisateur clique sur la souris dans le menu Fichier, ce qui génère un message WM_INITMENUPOPUP. Le mécanisme de mise à jour de l’infrastructure met collectivement à jour tous les éléments du menu Fichier avant la suppression du menu afin que l’utilisateur puisse le voir.
Pour ce faire, le cadre route les commandes de mise à jour pour tous les éléments de menu du menu contextuel selon le routage standard des commandes. Les cibles de commande sur le routage ont la possibilité de mettre à jour les éléments du menu en faisant correspondre la commande de mise à jour avec une entrée de 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 envoyées. Si un gestionnaire de mises à jour existe pour l’ID de commande de l’élément de menu, il est appelé pour effectuer la mise à jour. Si ce n’est pas le cas, l’infrastructure vérifie l’existence d’un gestionnaire pour cet ID de commande et active ou désactive l’élément de menu le cas échéant.
Si l’infrastructure ne trouve pas d’entrée ON_UPDATE_COMMAND_UI pendant le routage des commandes, elle active automatiquement l’objet d’interface utilisateur s’il existe une ON_COMMAND entrée quelque part avec le même ID de commande. Sinon, il 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 la commande que l’objet génère ou fournissez un gestionnaire de mises à jour pour celui-ci. Consultez la figure de la rubrique User-Interface Objets et ID de commande.
Il est possible de désactiver la désactivation par défaut des objets d’interface utilisateur. Pour plus d’informations, consultez le membre m_bAutoMenuEnable de la classe CFrameWnd dans la MFC Reference.
L’initialisation du menu est automatique dans l’infrastructure, se produisant lorsque l’application reçoit un message WM_INITMENUPOPUP. Pendant la boucle inactive, l’infrastructure recherche le routage des commandes pour les gestionnaires de mises à jour de bouton de la même façon que pour les menus.