Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

166
Visualizações
WM_USER frente a WM_APP

Quiero que los subprocesos de trabajo envíen un mensaje definido por el usuario a la cola de mensajes de subprocesos de la interfaz de usuario, pero no estoy seguro de si debo usar WM_USER o WM_APP . La documentación para WM_APP dice:

WM_APP a través de 0xBFFF

Mensajes disponibles para uso de aplicaciones.

Entonces, ¿debería usar WM_APP ?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Microsoft es muy conservador con sus API, por lo que puede estar seguro cuando ve que los mensajes WM_APP a 0xBFFF no entran en conflicto con los mensajes del sistema . Se necesitaría un cambio importante en la API de Windows para romper esa regla, y muchas otras aplicaciones no sobrevivirían.

La única pregunta relevante es: ¿necesita usar mensajes en el rango WM_USER o en el rango WM_APP ?

MSDN dice :

Los números de mensaje en el segundo rango (WM_USER a 0x7FFF) pueden ser definidos y utilizados por una aplicación para enviar mensajes dentro de una clase de ventana privada . Estos valores no se pueden usar para definir mensajes que sean significativos en una aplicación porque algunas clases de ventana predefinidas ya definen valores en este rango. Por ejemplo, las clases de control predefinidas como BUTTON, EDIT, LISTBOX y COMBOBOX pueden usar estos valores. Los mensajes en este rango no deben enviarse a otras aplicaciones a menos que las aplicaciones hayan sido diseñadas para intercambiar mensajes y para asignar el mismo significado a los números de mensaje.

Los números de mensaje en el tercer rango (0x8000 a 0xBFFF) están disponibles para que las aplicaciones los usen como mensajes privados. Los mensajes en este rango no entran en conflicto con los mensajes del sistema.

(énfasis mío)

Si publica explícitamente esos mensajes en una ventana que está diseñada para manejarlos de una manera específica y no es una subclase de un control de Windows, puede usar el rango WM_USER . Si van a ser manejados directamente por el bucle de mensajes (como WM_QUIT por ejemplo), o en caso de duda, use el rango WP_APP .

Dicho de otra manera, dado que no necesita muchos de esos mensajes y desea publicarlos en la cola de mensajes de subprocesos de la interfaz de usuario, simplemente use uno en el rango WM_APP que su aplicación aún no usa, y asegúrese de documentarlo para mantenimiento posterior.

over 4 years ago · Santiago Trujillo Relatório

0

Si controla completamente la clase de ventana de la ventana de destino (es decir, la definió, no está subclasificando/superclasificando otra clase, y no usa IsDialogMessage en su ventana), entonces puede usar WM_USER+xxx (con x >= 0 ).

De lo contrario, debe usar al menos WM_APP+xxx , siempre que controle la aplicación que contiene la ventana.

De lo contrario, la única opción que quedaría sería RegisterWindowMessage() .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda