Woah, vamos a parar y pensar aquí ...
En primer lugar, el propio Windows envía mensajes en el rango WM_USER+n
, por eso se inventó WM_APP
(descubrí esto de la manera difícil). Pero empeora ... no hay nada para detener las aplicaciones con mal comportamiento radiodifundiendoWM_USER+n
o WM_APP+n
mensajes, y como los seres humanos robaron el cristal de la estupidez infinita de los Dioses, esto de hecho sucede en el mundo real.
Por lo tanto, repita después de mí, el único mensaje seguro es uno que defino a mí mismo y solo puedo verme a mí mismo. Use RegisterWindowMessage. Y aun así, desconfía. Cuando necesito una cadena para definir un RegisterWindowMessage, utilizo GUIDGEN para crear la cadena y poner un prefijo específico de la aplicación legible para los humanos en el guioncito resultante para ayudarme a diferenciar varios mensajes en el código.
Apuesta por la estupidez de tus compañeros humanos: siempre es una apuesta ganadora.
Si desea información sobre este tema, consulte here. No, ese no es mi sitio web, es el de Joe Newcomer.
gracias! ¿Es necesario RegisterWindowMessage() si el mensaje se envía y se captura dentro de una sola aplicación? – BeeBand
Si usa #define, asegúrese de usar paréntesis (WM_USER + 0x0001) para que la aritmética realizada en su nuevo número de mensaje (operaciones en modo bit, empaque en una palabra de orden superior, etc.) funcione correctamente. – Travis
Y no, no necesita RegisterWindowMessage si solo hay una aplicación involucrada; solo si necesita dos aplicaciones para aceptar un solo número de mensaje. – Travis