Comment faire pour désactiver le bouton de commande par défaut Handling for boîte de dialogue MFC

Traductions disponibles Traductions disponibles
Numéro d'article: 122489 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Boîtes de dialogue Windows prend en charge l'utilisation d'un bouton par défaut (bouton de commande) qui est automatiquement activée lorsque la touche entrée est enfoncée alors que le focus n'est pas sur un bouton de commande. La bibliothèque de classe MFC appelle automatiquement la fonction virtuelle CDialog::OnOK() pour une boîte de dialogue chaque fois que le bouton par défaut (bouton de commande) est activé en appuyant sur la touche ENTRÉE.

Ce comportement est conforme aux instructions stipulées «l'interface Windows : un guide de conception d'applications. " Ce manuel est inclus dans la documentation du Kit de développement de Windows version 3.1. Il est également disponible auprès de Microsoft Press.

Plus d'informations

Bien que la prise en charge du bouton (bouton de commande) par défaut est recommandée, vous souhaiterez peut-être désactiver ou modifier l'implémentation standard dans certaines situations. Vous pouvez le faire dans une application MFC en procédant comme suit :

  1. Charger la boîte de dialogue dans App Studio et changez l'identificateur du bouton OK de IDOK en quelque chose d'autre comme IDC_MYOK. En outre, désactivez la vérification de la propriété Button par défaut.
  2. ClassWizard permet de créer un message qui gère la fonction de ce bouton nommé OnClickedMyOK. Cette fonction sera exécutée lorsqu'un message BN_CLICKED est reçu à partir de ce bouton.
  3. Dans le code de OnClickedMyOK, appelez la version de la classe de base de la fonction OnOK. Voici un exemple :
       void CMyDialog::OnClickedMyOK()
       {
          CDialog::OnOK();
       }
    						
  4. Substituez OnOK pour votre boîte de dialogue et ne faites rien à l'intérieur de la fonction. Voici un exemple :
       void CMyDialog::OnOK()
       {
       }
    						
  5. Exécutez le programme et afficher la boîte de dialogue. Donner le focus à un contrôle autre que le bouton OK. Appuyez sur la touche retour. Notez que CDialog::OnOK() n'est jamais exécutée.
Cette technique désactive efficacement la prise en charge du bouton (bouton de commande) standard par défaut dans un programme MFC. Le bouton OK continuera à se comportent comme avant lorsqu'il est activé par la souris ou via une frappe de touche mnémonique, mais la touche entrée ne déclenche pas OnOK gestion.

Cette même technique peut être utilisée pour désactiver ou modifier le traitement de OnCancel par défaut. La touche d'échappement génère un appel à CDialog::OnCancel tout comme la touche entrée génère un appel de fonction OnOK.

Propriétés

Numéro d'article: 122489 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Foundation Class Library 4.2 sur le système suivant
    • Microsoft Visual C++ 1.0 Édition Professionnelle
    • Microsoft Visual C++ 1.5 Édition Professionnelle
    • Microsoft Visual C++ 1.0 Édition Professionnelle
    • Microsoft Visual C++ 2.0 Édition Professionnelle
    • Microsoft Visual C++ 4.0 Édition Standard
Mots-clés : 
kbmt KB122489 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 122489
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com