Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo llamar a la función API SendMessage en el asistente de claves?

¿Cómo llamar a la función API SendMessage en el asistente de claves?

Windows es un sistema basado en mensajes y SendMessage es uno de los principales medios de mensajería entre aplicaciones. Aquí, he recopilado una introducción detallada de los parámetros de la función SendMessage para su propio uso.

Declaración VFP:

Declarar SendMessage entero en usuario32

Entero hWnd,;

Entero wMsg,;

Entero wParam,;

Entero lParam

Parámetro 1: identificador de ventana hwnd. Una ventana puede ser cualquier tipo de objeto de pantalla.

Parámetro 2: wmsg: un valor constante utilizado para distinguir otros mensajes.

Parámetro 3: wparam: normalmente un valor constante relacionado con el mensaje o un identificador de la ventana o control.

Parámetro 4: lParam: normalmente un puntero a datos en la memoria.

Valor constante del parámetro WMsg: # definewm _ create0x001 crea una ventana.

#DeFine WM_DESTROY 0x02 Enviado cuando la ventana está rota.

#DeFine WM_MOVE 0x03 Mueve una ventana.

#definewm_size05Cambiar el tamaño de la ventana.

#DeFine WM_ACTIVATE 0x06 La ventana se activa o desactiva.

#DeFine WM_SETFOCUS 0x07 Una ventana obtiene el foco.

#definewm_killfocus08 La ventana perdió el foco.

#DeFine WM_ENABLE 0x0A La ventana se habilita.

#DeFine WM_SETREDRAW 0x0B establece si la ventana se puede volver a dibujar.

#DeFine WM_SETTEXT 0x0C La aplicación envía este mensaje para configurar el texto de la ventana.

#DeFine WM_GETTEXT 0x0D La aplicación envía este mensaje para copiar el texto de la ventana correspondiente al buffer.

#DeFine WM_GETTEXTLENGTH 0x0E Obtiene la longitud del texto relacionado con la ventana (excluidos los caracteres nulos).

#DeFine WM_PAINT 0x0F requiere que la ventana se vuelva a dibujar.

# define WM_close 0x 10 Envía una señal cuando la ventana o aplicación está a punto de cerrarse.

# define WM_queryendsession 0x 11 Cuando el usuario elige finalizar el cuadro de diálogo o el programa llama a la función ExitWindows.

#DeFine WM_QUIT 0x12 se utiliza para finalizar el programa.

#DeFine WM_QUERYOPEN 0x13 Envía este mensaje al icono cuando la ventana del usuario se restablece a su tamaño y posición original.

#Defina WM_ERASEBKGND 0x14 cuando se debe borrar el fondo de la ventana (por ejemplo, cuando la ventana cambia de tamaño).

# define WM_syscolorchange 0x 15 Cuando el color del sistema cambie, envíe este mensaje a todas las ventanas de nivel superior.

#DeFine WM_ENDSESSION 0x16 Cuando el proceso del sistema envía el mensaje WM_QUERYENDSESSION, este mensaje se envía a la aplicación para informarle si la conversación finalizó.

#DeFine WM_SHOWWINDOW 0x18 Envía este mensaje a esta ventana al ocultarla o mostrarla.

#Definir WM_activar aplicación 0x 1c Envía este mensaje a qué ventana está activa y cuál aplicación está inactiva.

#DeFine WM_FONTCHANGE 0x1D Cuando la biblioteca de fuentes del sistema cambia, este mensaje se envía a todas las ventanas de nivel superior.

#DeFine WM_TIMECHANGE 0x1E Cuando cambie la hora del sistema, envíe este mensaje a todas las ventanas de nivel superior.

#DeFine WM_CANCELMODE 0x1F Envía este mensaje para cancelar algún modo (operación) en curso.

#DeFine WM_SETCURSOR 0x20 Envía un mensaje a una ventana si el mouse hace que el cursor se mueva en una ventana y la entrada del mouse no se captura.

# define WM _ mouse enable 0x 21 Este mensaje se envía a la ventana actual cuando el cursor está en una ventana inactiva y el usuario presiona el botón del mouse.

#DeFine WM_CHILDACTIVATE 0x22 Este mensaje se envía a una ventana secundaria MDI cuando el usuario hace clic en la barra de título de esta ventana, o cuando la ventana se activa, se mueve o se cambia de tamaño.

#DeFine WM_QUEUESYNC 0x23 Este mensaje es enviado por el programa de capacitación basado en computadora y el mensaje ingresado por el usuario está separado por el programa de enlace de WH_JOURNALPALYBACK.

#DeFine WM_GETMINMAXINFO 0x24 Este mensaje se envía a la ventana cuando la ventana está a punto de cambiar de tamaño o posición.

#DeFine WM_PAINTICON 0x26 Enviado a la ventana minimizada cuando su icono está a punto de ser redibujado.

# definewm_iconerabkgnd0x27 Este mensaje se envía a una ventana minimizada cuyo fondo debe volver a dibujarse sólo antes de que pueda dibujar un icono.

#DeFine WM_NEXTDLGCTL 0x28 Envía este mensaje al programa del cuadro de diálogo para cambiar la posición del enfoque.

#DeFine WM_SPOOLERSTATUS 0x2A Este mensaje se envía cada vez que se agrega o elimina un trabajo de la cola de administración de impresión.

#DeFine WM_DRAWITEM 0x2B Se envía cuando cambia la apariencia visual de botones, cuadros combinados, cuadros de lista y menús.

#Al crear un botón, cuadro combinado, cuadro de lista, control de vista de lista o elemento de menú, defina WM_MEASUREITEM 0x2C.

#DeFine WM_VKEYTOITEM 0x2E Este mensaje tiene un estilo LBS_WANTKEYBOARDINPUT enviado a su propietario en respuesta al mensaje WM_KEYDOWN.

# DefineWM_charitem 0x2f Este mensaje es enviado por el cuadro de lista de estilo LBS_WANTKEYBOARDINPUT a su propietario en respuesta al mensaje WM_CHAR #DeFine WM_SETFONT 0x30. Al dibujar texto, el programa envía este mensaje para obtener el color a utilizar para el control.

#DeFine WM_GETFONT 0x31 Una aplicación envía este mensaje para obtener la fuente del texto dibujado por el control actual #DeFine WM_SETHOTKEY 0x32 Una aplicación envía este mensaje para asociar una ventana con una tecla de acceso rápido.

# define WM_gethotkey 0x 33 La aplicación envía este mensaje para determinar si una tecla de acceso rápido está asociada con la ventana.

#DeFine WM_QUERYDRAGICON 0x37 Este mensaje se envía a una ventana minimizada. Cuando una ventana está a punto de ser arrastrada y soltada y no hay ningún ícono definido en su clase, la aplicación puede devolver un identificador al ícono o cursor que el sistema mostrará cuando el usuario arrastre y suelte el ícono.

#DeFine WM_COMPAREITEM 0x39 Envíe este mensaje para determinar la posición relativa de un cuadro combinado o elemento de cuadro de lista recién agregado.

# define WM _ comparando 0x 41 significa que hay poca memoria.

# define WM _ windowpos cambiando 0x 46 Cuando el tamaño y la posición de la ventana están a punto de cambiar, envíe este mensaje para llamar a la función setwindowpos u otras funciones de administración de ventanas.

#DeFine WM_WINDOWPOSCHANGED 0x47 Cuando el tamaño y la posición de la ventana cambian, este mensaje se envía para llamar a la función setwindowpos u otras funciones de administración de ventanas #DeFine WM_POWER 0x48 Cuando el sistema está a punto de ingresar al estado de suspensión, este mensaje es enviado.

#DeFine WM_COPYDATA 0x4A Este mensaje se envía cuando una aplicación pasa datos a otra aplicación.

# definewm _ cancelJourney 0x4b Envíe este mensaje al programa cuando el usuario cancele la activación del registro del programa.

#DeFine WM_NOTIFY 0x4E Cuando ocurre un evento de control o el control necesita obtener alguna información, este mensaje se envía a su ventana principal.

# define WM_inputlangchangerequest 0x 50 Cuando el usuario selecciona un idioma de entrada, o la tecla de acceso rápido para el idioma de entrada cambia.

# define WM_input cambio de idioma 0x 51 Después de un cambio en el sitio de la plataforma, envíe este mensaje a la ventana de nivel superior afectada.

#DeFine WM_TCARD 0x52 Este mensaje se envía a la aplicación cuando el programa inicializa la rutina de ayuda de Windows.

#DeFine WM_HELP 0x53 Este mensaje indica que el usuario ha presionado F1. Si un menú está activo, este mensaje se enviará al menú asociado con esta ventana; de lo contrario, se enviará a la ventana que tiene el foco. Si actualmente no hay ningún foco, este mensaje se enviará a la ventana actualmente activa.

#DeFine WM_USERCHANGED 0x54 Envía este mensaje a todas las ventanas cuando el usuario inicia o cierra sesión. Cuando el usuario inicia o cierra sesión, el sistema actualizará la información de configuración específica del usuario. Cuando el usuario actualice la configuración, el sistema enviará este mensaje inmediatamente.

#DeFine WM_NOTIFYFORMAT 0x55 Los controles comunes, los controles personalizados y sus ventanas principales usan este mensaje para determinar si el control usa estructura ANSI o UNICODE #DeFine WM_CONTEXTMENU Cuando el usuario hace clic derecho en una ventana, se envía este mensaje a esta ventana.

#DeFine WM_STYLECHANGING 0x7C Este mensaje se envía a una o más ventanas cuando al llamar a la función SETWINDOWLONG se cambiará el estilo de la ventana.

#DeFine WM_STYLECHANGED 0x7D Envía este mensaje a una o más ventanas después de llamar a la función de estilo SETWINDOWLONG.

#DeFine WM_DISPLAYCHANGE 0x7E Cuando cambie la resolución de la pantalla, envíe este mensaje a todas las ventanas.

#DeFine WM_GETICON 0x7F Este mensaje se envía a la ventana para devolver un identificador al ícono grande o pequeño asociado con la ventana.

#DeFine WM_SETICON 0x80 El programa envía este mensaje para asociar un nuevo icono grande o pequeño a una ventana.

#DeFine WM_NCCREATE 0x81 Cuando se crea la ventana por primera vez, este mensaje se envía antes de enviar el mensaje WM_CREATE.

#DeFine WM_NCDESTROY 0x82 Este mensaje notifica a una ventana que el área no cliente está siendo destruida.

#DeFine WM_NCCALCSIZE 0x83 Este mensaje se envía cuando se debe tener en cuenta el área cliente de la ventana.

#DeFine WM_NCHITTEST 0x84 Ocurre al mover, mantener o soltar el mouse.

#DeFine WM_NCPAINT 0x85 El programa envía este mensaje a la ventana cuando se debe dibujar el marco de la ventana.

#DeFine WM_NCACTIVATE 0x86 Este mensaje se envía solo cuando es necesario cambiar el área no cliente de una ventana para mostrar si está activa o inactiva #DeFine WM_GETDLGCODE 0x87 Enviar este mensaje a un ventana con Un control asociado con un programa de cuadro de diálogo. Las teclas de flecha del control de ventana y la tecla TAB permiten la entrada para ingresar a este control a través de la respuesta.

#DeFine WM_NCMOUSEMOVE 0xA0 Este mensaje se envía a la ventana cuando el cursor se mueve en el área no funcional de la ventana: la barra de título del formulario y el marco de la ventana.

# define WM_nclbuttondown 0xa 1 Envíe este mensaje cuando el cursor esté en el área de no trabajo de la ventana y se presione el botón izquierdo del mouse simultáneamente.

#DeFine WM_NCLBUTTONUP 0xA2 Cuando el usuario suelta el botón izquierdo del mouse, el cursor enviará este mensaje en un área no cliente al mismo tiempo.

# DeFine WM _ NCLBUTTONDBLCLK 0xA3 Cuando el usuario hace doble clic con el botón izquierdo del mouse, el cursor enviará este mensaje en un área que no es del cliente al mismo tiempo.

#DeFine WM_NCRBUTTONDOWN 0xA4 Este mensaje se envía cuando el usuario presiona el botón derecho del mouse y el cursor está en el área no funcional de la ventana.

#DeFine WM_NCRBUTTONUP 0xA5 Este mensaje se envía cuando el usuario suelta el botón derecho del mouse y el cursor está en el área que no funciona de la ventana.

# definewm_ncrbuttonblclk 0xa6 Este mensaje lo envía el cursor en una ventana en el área no cliente cuando el usuario hace doble clic con el botón derecho del mouse.

#DeFine WM_NCMBUTTONDOWN 0xA7 Este mensaje se envía cuando el usuario presiona el botón central del mouse y el cursor se ubica en el área no funcional de la ventana.

#DeFine WM_NCMBUTTONUP 0xA8 Este mensaje se envía cuando el usuario suelta el botón central del mouse y el cursor se ubica en el área no funcional de la ventana.

# DeFine WM_NCMBUTTONDBLCLK 0xA9 Este mensaje se envía cuando el usuario hace doble clic con el botón central del mouse y el cursor se ubica en el área de no trabajo de la ventana.

# definir WM _ tecla primero 0x 100 WM _ keydown Presione una tecla.

# define WM_keyup 0x 101 Liberar una clave.

#DeFine WM_CHAR 0x102 Presione una tecla y envíe mensajes WM_KEYDOWN, WM_KEYUP.

#DeFine WM_DEADCHAR 0x103 Cuando se utiliza la función Translatemessage para traducir el mensaje WM_KEYUP, envía este mensaje a la ventana enfocada # DeFine WM_syskeydown 0x 104 Cuando el usuario presiona la tecla ALT y presiona otras teclas al mismo tiempo momento, envíe este mensaje a la ventana enfocada.

#DeFine WM_SYSKEYUP 0x105 Envíe este mensaje a la ventana enfocada cuando el usuario suelte una tecla mientras la tecla ALT aún está presionada.

#DeFine WM_SYSCHAR 0x106 Cuando la función TRANSLATEMESSAGE traduce el mensaje WM_SYSKEYDOWN, este mensaje se envía a la ventana enfocada.

# define WM_sysdeadchar 0x 107 Cuando el mensaje WM_SYSKEYDOWN es traducido por la función TRANSLATEMESSAGE, envía este mensaje a la ventana enfocada.

#define WM_init dialog 0x 110 Envía este mensaje antes de mostrarlo en un programa de cuadro de diálogo, que generalmente se usa para inicializar controles y realizar otras tareas.

# define WM_command 0x 111 Las teclas de acceso directo se convierten cuando el usuario selecciona un elemento de comando de menú o cuando un control envía un mensaje a su ventana principal.

# define comando WM_sys 0x 112 La ventana recibirá este mensaje cuando el usuario seleccione un comando en el menú de la ventana, o cuando el usuario elija maximizar o minimizar.

# define WM_timer 0x 113 Ocurrió un evento de temporizador.

# define WM _ hscroll 0x 114 Cuando la barra de desplazamiento horizontal estándar de una ventana genera un evento de desplazamiento, este mensaje se envía a esa ventana y al control que la posee.

# define WM_vscroll 0x 115 Cuando la barra de desplazamiento vertical estándar de una ventana genera un evento de desplazamiento, envía este mensaje a la ventana y a su control propietario.

# define WM_init menu 0x 116 Este mensaje se envía cuando el menú está a punto de activarse. Esto ocurre cuando presionar un elemento o tecla de menú en la barra de menú del usuario permite que un programa cambie el menú antes de que se muestre.

# define WM_initmenupupup 0x 117 Este mensaje se envía cuando un menú desplegable o submenú está a punto de activarse. Esto permite que el programa cambie el menú antes de que se muestre sin cambiar el menú completo.

#define WM_menuse lect 0x 11f Cuando el usuario selecciona un elemento del menú, envía este mensaje al propietario del menú (normalmente una ventana).

#DeFine WM_MENUCHAR 0x120 Este mensaje se envía al propietario del menú cuando el menú se activa y el usuario presiona una tecla (que no sea la tecla del acelerador).

# define WM_enter idle 0x 121 Cuando un cuadro de diálogo o menú modal entra en estado inactivo, este mensaje se envía a su propietario. Cuando un cuadro de diálogo o menú modal entra en estado inactivo, no hay mensajes esperando en la cola después de que se hayan procesado uno o varios mensajes anteriores.

# define WM _ CTL color msgbox 0x 132 Envía este mensaje a la ventana del propietario del cuadro de mensaje antes de que Windows dibuje el cuadro de mensaje. En respuesta a este mensaje, la ventana del propietario puede configurar el texto del cuadro de mensaje y los colores de fondo utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ CTL color edit 0x 133 Cuando un control de edición está a punto de dibujarse, envía este mensaje a su ventana principal. En respuesta a este mensaje, la ventana del propietario puede configurar el texto y los colores de fondo del cuadro de edición utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ CTL color listbox 0x 134 Envía este mensaje al control listbox antes de dibujar su ventana principal. En respuesta a este mensaje, la ventana del propietario puede configurar el texto y los colores de fondo del cuadro de lista utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ CTL color BTN 0x 135 Cuando un control de botón está a punto de dibujarse, envía este mensaje a su ventana principal. En respuesta a este mensaje, la ventana del propietario puede configurar el texto y el color de fondo del botón utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM_ctlcolordlg 0x 136 Envía este mensaje al control del cuadro de diálogo antes de dibujar su ventana principal. En respuesta a este mensaje, la ventana del propietario puede configurar el color de fondo del texto del cuadro de diálogo utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ CTL color barra de desplazamiento 0x 137 Envía este mensaje a su ventana principal cuando el control de la barra de desplazamiento está a punto de dibujarse. En respuesta a este mensaje, la ventana del propietario puede configurar el color de fondo de la barra de desplazamiento utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ CTL color static 0x 138 Cuando un control estático está a punto de dibujarse, envía este mensaje a su ventana principal. En respuesta a este mensaje, la ventana del propietario puede configurar el texto y el color de fondo del control estático utilizando el identificador proporcionado para el dispositivo de visualización asociado.

# define WM _ mouse first 0x 200 Ocurre cuando se mueve el mouse.

#DeFine WM_MOUSEMOVE 0x200 ocurre cuando se mueve el mouse, lo mismo que WM_mousefirst #DeFine WM_lbuttondown 0x 201. Presione el botón izquierdo del mouse #DeFine WM_LBUTTONUP 0x202 Suelte el botón izquierdo del mouse.

# definewm_lbuttondbllclk 0x203 Haz doble clic con el botón izquierdo del ratón.

#DeFine WM_RBUTTONDOWN 0x204 Pulsa el botón derecho del ratón.

#DeFine WM_RBUTTONUP 0x205 Suelta el botón derecho del ratón.

# definewm_rbuttondbllclk 0x206 Haz doble clic con el botón derecho del ratón.

#DeFine WM_MBUTTONDOWN 0x207 Pulsa el botón central del ratón.

#DeFine WM_MBUTTONUP 0x208 Suelta el botón central del ratón.

#DeFine WM_MBUTTONDBLCLK 0x209 Haga doble clic en el botón central del mouse.