Red de conocimiento informático - Problemas con los teléfonos móviles - En la programación win32, ¿para qué se utilizan ransMessage() y DispatchMessage()?

En la programación win32, ¿para qué se utilizan ransMessage() y DispatchMessage()?

mientras (GetMessage (&msg, NULL, 0, 0))

{

TranslateMessage (&msg) ;

DispatchMessage (&msg ) ;

}

Este es un fragmento del programa principal del programa de aplicación de ventana del sistema operativo Windows. Cada aplicación de ventana lo tendrá.

Todo proceso que quiera manejar una ventana (un concepto en los sistemas operativos de computadoras) tendrá la estructura anterior. Y cada hilo con una ventana tendrá una cola de mensajes (también un concepto de sistema operativo, especificado en el sistema operativo Windows. Esta cola de mensajes es mantenida por el sistema operativo Windows). Cuando se notifica cualquier evento a este hilo, se envía un evento de mensaje a la cola de mensajes a la que pertenece.

El significado de GetMessage es extraer un mensaje de la cola de mensajes.

TranslateMessage significa, aproximadamente, convertir mensajes de clave virtual en mensajes de caracteres.

Las teclas virtuales son teclas del teclado definidas por el sistema Windows. Hay tantas teclas virtuales como teclas en el teclado.

Pero las claves virtuales no son la información clave que requiere la aplicación. TranslateMessage convierte claves virtuales en los caracteres correspondientes. Por ejemplo, la tecla virtual "A" (porque el teclado está en mayúsculas, por lo que no hay minúsculas) se convierte en el carácter "a" (si el teclado está en mayúsculas) o en el carácter "A" (si el teclado está en mayúsculas). minúsculas).

El significado de DispatchMessage es enviar este mensaje a la función de procesamiento de ventana de la ventana mencionada en el mensaje.

El tipo de mensaje es una estructura, que contiene el contenido de a qué ventana se envía el mensaje.

Cada ventana tiene una función de procesamiento de ventana correspondiente. La función de esta función es manejar el trabajo relacionado con esta ventana.

La función del cuerpo del bucle anterior es obtener continuamente mensajes de la cola de mensajes (si hay mensajes), y luego, si el mensaje es un mensaje de clave virtual, se convertirá mediante el mensaje de caracteres TranslateMessage. Envíe el mensaje a la función de procesamiento de ventana correspondiente.