Sobre os cenários de classificação e uso de mensagens do Windows

Sobre a classificação de mensagens do Windows

No desenvolvimento do Windows, costumamos usar mensagens personalizadas. Quanto à seleção de valores desta mensagem, ainda é um pouco particular. Vamos dar uma olhada nela hoje (para não nos perdermos de novo).

As mensagens do Windows podem ser divididas nas seguintes categorias:

0 ~ 0x3FF (WM_USER - 1): mensagem do sistema

Esse tipo de mensagem é definido e usado pelo sistema operacional. Tentamos não definir nossas próprias mensagens neste intervalo, pois elas serão utilizadas pelo sistema operacional e reconhecerão os parâmetros WPARAM e LPARAM da mensagem, e os empacotarão entre vários processos (Marshal).

0x400 ~ 0x7FFF (WM_USER ~ WM_APP - 1): mensagens do Windows

As mensagens definidas neste escopo são usadas principalmente em classes do Windows. Por exemplo, a mensagem WM_USER + 1, se a janela for um controle de barra de ferramentas, significa TB_ENABLEBUTTON, se a janela for um controle de dica de ferramenta, significa TTM_ACTIVATE, se a janela for uma caixa de diálogo, então Esta mensagem indica DM_SETDEFID. Se você criar seu próprio controle personalizado, ele pode expressar outro significado completamente diferente. Como todos os desenvolvedores podem usar mensagens neste intervalo, o sistema operacional não pode saber claramente como analisar esta mensagem, portanto, o empacotamento automatizado não será executado.

0x8000 ~ 0xBFFF (WM_APP ~ MAXINTATOM - 1): Mensagem de definição de aplicativo

As mensagens neste intervalo são definidas pelo próprio aplicativo. Esse intervalo de mensagens foi criado durante o período do Windows 95 para garantir que as mensagens personalizadas usadas pelos aplicativos não afetassem as mensagens do Windows em versões futuras do Windows. Como as mensagens do Windows acima, os desenvolvedores podem usar mensagens neste intervalo, portanto, o sistema operacional não pode saber claramente como analisar essa mensagem, portanto, o empacotamento automático não será executado.

0xC000 ~ 0xFFFF (MAXINTATOM ~ MAXWORD): Mensagem de registro

Este intervalo é principalmente as mensagens registradas por meio de RegisterWindowMessage. Deve-se observar que o valor real da mensagem registrada pode variar com cada operação do sistema, portanto, você precisa usar RegisterWindowMessage para obter o valor real da mensagem. Como as mensagens do Windows acima, os desenvolvedores podem usar mensagens neste intervalo, portanto, o sistema operacional não pode saber claramente como analisar essa mensagem, portanto, o empacotamento automático não será executado.

Acho que você gosta

Origin blog.csdn.net/mmxida/article/details/107923815
Recomendado
Clasificación