Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo utilizar el temporizador VC SetTimer

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

}

}