Cómo utilizar el temporizador VC SetTimer
Uso de la función SetTimer
1) Utilice WM_TIMER para configurar el temporizador
Primero, mire el prototipo de la función API SetTimer
UINT_PTR SetTimer(
HWND hWnd, // Identificador de ventana
UINT_PTR nIDEvent, // ID del temporizador, cuando hay varios temporizadores, puede usar el ID para determinar qué temporizador
UINT uElapse, // Intervalo de tiempo, la unidad es milisegundos
TIMERPROC lpTimerFunc // Función de devolución de llamada
);
Por ejemplo
SetTimer(m_hWnd,1,1000,NULL); //Un temporizador que se activa una vez por segundo
En los programas MFC, SetTimer está encapsulado en la clase CWnd, por lo que no es necesario. para especificar un identificador de ventana al llamar
Entonces el prototipo de la función SetTimer se convierte en:
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT,DWORD))
Cuando se utiliza la función SetTimer, se generará un temporizador. nIDEvent en la función se refiere al identificador del temporizador, que es el nombre. nElapse se refiere al intervalo de tiempo,
es decir, con qué frecuencia se activa un evento. El tercer parámetro es una función de devolución de llamada. En esta función, coloque el código de lo que desea hacer. Puede configurarlo en NULL, lo que significa usar la función de devolución de llamada predeterminada del sistema. El sistema utiliza de forma predeterminada la función onTime. ¿Cómo se genera esta función? Debe generar la función onTime en la clase que necesita un temporizador:
En ClassWizard, seleccione la clase que necesita un temporizador, agregue la asignación de mensajes WM_TIME y la función onTime se generará automáticamente. Luego agregue código en la función para permitir que el código implemente la función.
Se ejecutará automáticamente cada cierto tiempo.
Ejemplo:
SetTimer(1,1000,NULL);
1: nombre del temporizador
1000: intervalo de tiempo, la unidad es milisegundos;
NULL: utiliza la función onTime.
Llame a KillTimer(nIDEvent) cuando el temporizador no sea necesario
Por ejemplo: KillTimer(1)
2) Llame a la función de devolución de llamada
Este método primero escribe una función de devolución de llamada en el siguiente formato
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
Luego usa SetTimer( 1,100, TimerProc) para construir un temporizador, el tercer parámetro es la dirección de la función de devolución de llamada.
2. Quizás te preguntes, ¿qué pasa si quiero agregar dos o más temporizadores?
Continuar usando la función SetTimer. El último ID del temporizador fue 1, esta vez puede ser 2, 3 o 4. . . .
SetTimer(2,1000,NULL);
SetTimer(3,500,NULL);
Bueno, WINDOWS los coordinará.
Por supuesto, el cuerpo de la función onTimer también debe cambiar y el código de procesamiento para cada temporizador debe agregarse al cuerpo de la función:
onTimer(nIDEvent)
{
switch(nIDEvent )
{
caso 1:.....;
romper
caso 2:. .. ....;
romper
caso 3:
romper
} p>
}