Cómo deshabilitar el botón predeterminado control de cuadro de diálogo MFC

Seleccione idioma Seleccione idioma
Id. de artículo: 122489 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Cuadros de diálogo de Windows admiten el uso de un botón predeterminado (botón) que se activa automáticamente cuando se presiona la tecla ENTRAR mientras el foco no está en un botón de comando. La biblioteca de clase MFC llamará automáticamente la función virtual CDialog::OnOK() para un cuadro de diálogo siempre que se activa el botón predeterminado (botón) presionando la tecla ENTRAR.

Este comportamiento se ajusta a las directrices establecidas "la interfaz de Windows: una guía de diseño de aplicaciones." Este manual se incluye con la documentación de SDK de Windows versión 3.1. También está disponible de Microsoft Press.

Más información

Aunque se recomienda compatibilidad de botón (botón) predeterminada, quizás desee deshabilitar o modificar la implementación estándar en determinadas situaciones. Puede hacerlo en una aplicación MFC siguiendo estos pasos:

  1. Cargar Studio de la aplicación en el cuadro de diálogo y cambie el identificador del botón Aceptar de IDOK a algo como IDC_MYOK. Asimismo, desactive la comprobación de propiedad de botón predeterminado.
  2. Utilice ClassWizard para crear un mensaje de control de función para este botón denominado OnClickedMyOK. Esta función se ejecutará cuando se recibe un mensaje BN_CLICKED desde este botón.
  3. En el código de OnClickedMyOK, llamar a la versión de la clase base de la función OnOK. Éste es un ejemplo:
       void CMyDialog::OnClickedMyOK()
       {
          CDialog::OnOK();
       }
    						
  4. Reemplace OnOK para el cuadro de diálogo y no hacer nada dentro de la función. Éste es un ejemplo:
       void CMyDialog::OnOK()
       {
       }
    						
  5. Ejecute el programa y abrir el cuadro de diálogo. Dar el foco a un control que no sea el botón Aceptar. Presione la tecla RETORNO. Observe que CDialog::OnOK() nunca se ejecuta.
Esta técnica eficaz deshabilita la compatibilidad de botón (botón) predeterminado estándar en un programa MFC. El botón Aceptar continuará se comporte como antes, cuando se activa con el mouse o a través de una pulsación de tecla de acceso, pero la tecla ENTRAR no desencadenará OnOK control.

Esta misma técnica puede utilizarse para deshabilitar o modificar el procesamiento de OnCancel predeterminado. La tecla escape genera una llamada a CDialog::OnCancel igual que la tecla ENTRAR genera una llamada de función OnOK.

Propiedades

Id. de artículo: 122489 - Última revisión: martes, 21 de noviembre de 2006 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Foundation Class Library 4.2 sobre las siguientes plataformas
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 4.0 Standard Edition
Palabras clave: 
kbmt KB122489 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 122489
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

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