• Miércoles 5 de Febrero de 2025, 10:58

Autor Tema:  Como Evitar La Pulsación Repetitiva De Un Boton  (Leído 1107 veces)

montoria

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Como Evitar La Pulsación Repetitiva De Un Boton
« en: Martes 19 de Junio de 2007, 16:35 »
0
:whistling:

Hola a todos:

En mi aplicación tengo un botón que inicia un proceso que requiere cierto tiempo, pongamos 5 segundos. Quiero evitar que el usuario pulse ese botón en esos 5 seg. ya que si es así repite el proceso y esto no es deseable. He encontrado una función del botón: EnableWindows(false) que impide o ignora los eventos del teclado o del ratón, pero sólo si no se trata del butón pulsado, es decir, pulsando otro botón puedo inahabilitar el que me interesa, pero no puedo inhabilitar el botón desde el manejador OnClick de ese botón.
Si me he enrollado mucho, pongo ahora el código para que se vea más claro:

Esto no funciona:

void CMiAplicacionDlg::OnClickMiBoton()
{
   // TODO: Add your control notification handler code here
                // m_anadir es la variable del botón
               // lo que hay entre la primera y la última línea
               // es solo a modo de prueba
   m_anadir.EnableWindow(false);  
   Sleep(5000); // esto añado para que pueda volver a hacer click
   CString cad1;
   CString cad2;
   CString cad3;
   cad1="";
   cad2="";
   cad3="";
   i++;
   m_texto.GetWindowText(cad1);
   cad2.Format("%i",i);
   cad3.Format("%s %s",cad1,cad2);
   m_texto.SetWindowText(cad3);
   m_anadir.EnableWindow(true);
}

¿Alguién se encontro con este problema antes? ¿Podeís darme alguna idea?

Un saludo

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Como Evitar La Pulsación Repetitiva De Un Boton
« Respuesta #1 en: Martes 19 de Junio de 2007, 17:59 »
0
saludos :)


puedes crear una bandera que sea verdadera al inicio del programa se vuelva falsa al pulsar el boton, y se vuelva verdadera al terminar los 5 seg y que el proceso solo pueda comenzar si la bandera es verdadera, asi , si pulsan el boton dentro de los 5 seg y la bandera es falsa no pasara nada

espero te sirva