Red de conocimiento informático - Problemas con los teléfonos móviles - Uso de VC PostMessage

Uso de VC PostMessage

Función de función WindowsAPI:

Esta función coloca (envía) un mensaje a la cola de mensajes asociada con el hilo creado por la ventana especificada y luego regresa sin esperar a que se procese el hilo. el mensaje. Este es un patrón de mensajería asincrónica. La cola de mensajes está disponible llamando a GetMessage y PeekMessage.

Prototipo de función: BOOLWINAPIPostMessage(HWNDhWnd, UINTMsg, WPARAMwParam, LPARAMlParam);

Descripción del parámetro:

hWnd: identificador de ventana para que el programa reciba mensajes. Puede tomar dos valores con significados específicos:

HWND_BROADCAST: el mensaje se enviará a todas las ventanas de nivel superior del sistema, incluidas las ventanas que no son de propiedad inválida o invisible, las ventanas superpuestas y las ventanas emergentes. ventanas. Los mensajes no se enviarán a ventanas secundarias

NULL: los parámetros de operación y llamada de esta función dwThread se establecen en el identificador del hilo actual

Msg: especifica el mensaje que se enviará .

wParam: Especifica información adicional específica del mensaje.

IParam: Especifica información adicional específica del mensaje.

Valor de retorno: distinto de cero cuando la llamada a la función es exitosa; de lo contrario, la llamada a la función devuelve cero.

Información de uso:

Windows NT: 3.1 y superior; Windows: 95 y superior; Windows CE: 1.0 y superior;

Archivo de encabezado: winuser.h;

Biblioteca de entrada: user32.lib;

Unicode: Implementado en Unicode y ANSI en entornos Windows NT.

Ejemplo de llamada C:

El siguiente ejemplo demuestra cómo utilizar la función PostMessage para publicar un mensaje en una ventana dedicada. #defineWM_COMPLETE(WM_USER 0)?

// Puede utilizar el siguiente código para publicar un mensaje en la cola de mensajes del hilo que creó la ventana especificada WaitForSingleObject(params-gt;hEvent, INFINITE);

lTime= GetCurrentTime();

PostMessage(pparams-gt;hwnd, WM_COMPLETE, 1, lTime);