Pregunta

Estoy tratando de hacer una ventana que se cierra cuando hace clic fuera de él , y en este momento estoy buscando hacerlo manejando la función WndProc.

Ninguno de los mensajes que recibo hasta ahora parece útil, pero hay algunos que no entiendo en absoluto. ¿Qué representan los códigos 0x0118, 0xC123, 0xC128 y 0xC12E?

¿Fue útil?

Solución

0x0118: WM_SYSTIMER (indocumentado) utilizado para parpadeos de detención

Los otros tres deben ser mensajes definidos por la aplicación (cualquier cosa en el rango de 0xC000 a 0xFFFF) para que no los encuentre definidos en ninguna parte.

Otros consejos

Una manera fácil sería simplemente capturar el mouse. Cuando tiene el mouse capturado, obtiene un evento de un clic fuera de su ventana, luego se desactiva la captura.

Una forma más difícil sería establecer un enlace de ventanas de mouse de bajo nivel. Para hacer un enlace global, tendrá que poner su código de enlace en una DLL no administrada.

Una forma realmente sencilla sería cerrar su formulario cuando esté desactivado.

EDITAR :

¡Vaya! Me acabo de dar cuenta de que no respondí tu pregunta directa sobre las ID de los mensajes. El mensaje 0x118 no está definido en winuser.h, por lo que supongo que es un ID de mensaje no documentado. Los ID de mensaje en el rango de 0xC000 a 0xFFFF son mensajes definidos por la aplicación. Estas ID son devueltas por RegisterWindowMessage .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top