繁体   English   中英

未定义的WIN32消息

[英]Undefined WIN32 messages

我在Windows消息回调中收到奇怪的输入。

除了正常工作的所有正常消息(例如WM_SIZE ,有些消息也不会出现在任何表中,例如这个表。 并且它们也没有定义为错误代码

消息为:(十进制/十六进制)

  • 356/0164(wParam:0,lParam:5760884)

  • 49291 / c08b(wParam:4294967292或0,lParam:0)

  • 49348 / c0c4(wParam:0,lParam:0)

有人知道他们的意思吗,或者我为什么要接受他们?

根据Win32文档:

以下是消息编号的范围。

\n 范围含义\n\n 0到WM_USER–1保留给系统使用的消息。\n WM_USER到0x7FFF私有窗口类使用的整数消息。\n WM_APP(0x8000)到0xBFFF可供应用程序使用的消息。\n 0xC000到0xFFFF供应用程序使用的字符串消息。\n 大于0xFFFF,由系统保留。\n

系统定义第一个范围(0到WM_USER –1)中的消息号。 系统保留未明确定义的该范围内的值。

可以定义第二个范围内的消息号(WM_USER到0x7FFF),应用程序可以使用该消息号在私有窗口类中发送消息。 这些值不能用于定义在整个应用程序中有意义的消息,因为某些预定义的窗口类已经定义了该范围内的值。 例如,预定义的控件类(例如BUTTON,EDIT,LISTBOX和COMBOBOX)可以使用这些值。 除非将应用程序设计为交换消息并将消息编号赋予相同的含义,否则不应将此范围内的消息发送给其他应用程序。

第三范围(0x8000到0xBFFF)中的消息编号可供应用程序用作私人消息。 此范围内的消息与系统消息不冲突。

当应用程序调用RegisterWindowMessage函数以检索字符串的消息号时,将在运行时定义第四个范围(0xC000至0xFFFF)中的消息号。 所有注册相同字符串的应用程序都可以使用关联的消息号来交换消息。 但是,实际的消息号不是常数,并且不能假定不同会话之间的消息号相同。

系统保留第五个范围(大于0xFFFF)中的消息号。

其中WM_USER为0x0400。

所以,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM