C/Visual C - Detectar pulsación botón en DialogBox

 
Vista:

Detectar pulsación botón en DialogBox

Publicado por andres (2 intervenciones) el 26/04/2001 09:47:03
Trabajando en Borland C++ para Windows.

En mi programa lanzo un bucle cuando se pulsa un botón desde mi ventana de dialogo.

¿Como puedo detectar dentro del bucle que se pulso otro botón de la ventana de diálogo
y si no se pulso ningun botón seguir ejecutando el bucle?

He probado con GetMessage y el programa se para hasta que se produce un evento, yo necesito que el programa siga ejecutandose hasta que se produzca la pulsación de un boton.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Detectar pulsación botón en DialogBox

Publicado por Wenceslao (1 intervención) el 11/05/2001 16:05:53
Sustituye el bucle por una función (da igual el nombre, p. ej. Thread1):

HANDLE thread;
DWORD threadid;
bool stop=false;

void Thread1 (HWND hwnd)
{
do{
// haz cosas
} while (!stop);
}

y en la caja de diálogo llámala con:

thread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread1,(HWND)hwnd,0,&threadid);

esa línea lanza la funcion Thread1 con el parámetro hwnd (puedes poner otros diferentes, o ninguno). Al correr en una hebra separada, puedes seguir pulsando botones en la ventana de diálogo. Después, para que se interrumpa, simplemente debes de poner la variable "stop" en true cuando se pulse el botón de la ventana.

Si resulta que la función es algo lenta (es normal), prueba a cambiar la prioridad de ejecución con:

SetThreadPriority(thread,THREAD_PRIORITY_HIGHEST);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar