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