【发布时间】:2016-07-06 13:07:44
【问题描述】:
我在 Windows 消息回调中收到奇怪的输入。
除了所有正常消息,如WM_SIZE,可以正常工作,还有一些消息没有出现在任何表格中,如this one。而且它们也没有定义为error codes。
消息是:(十进制/十六进制)
356 / 0164(wParam:0,lParam:5760884)
49291 / c08b(wParam:4294967292 或 0,lParam:0)
49348 / c0c4 (wParam: 0, lParam: 0)
有人知道它们的意思,或者我为什么要理解它们吗?
【问题讨论】:
-
不清楚,为什么您认为消息和错误代码有某种关联。我不知道,第一条消息是什么,但最后两条是应用程序私有消息(
WM_APP+ x)。它们由接收者定义,没有全局意义。 -
收到 Windows 消息并不奇怪。你收到的是意料中的,还是误送的,谁说得准。 minimal reproducible example 在哪里?
-
0x164 似乎是
CB_GETCOMBOBOXINFO。您是否正在监视组合框上的消息? -
一些 windows 消息确实没有记录,往往是 25 多年前犯下的罪行,他们永远无法再修复。消息 >= 0xc000 很正常,RegisterWindowMessage() 会产生它们。这些消息对 DefWindowProc 或子类窗口过程有意义,它们不是供您使用的。
-
任何您不期望且未处理的消息都应转发到 DefWindowProc。我不清楚你有什么实际问题。您不需要处理收到的每条消息;其中一些可能不适用于应用程序处理。为什么会有供操作系统私人使用的未记录消息令人惊讶?