Mfc 如何查找隐藏的windows消息代码?

Mfc 如何查找隐藏的windows消息代码?,mfc,winapi,Mfc,Winapi,我收到一封代码为1092(0x444)的windows邮件,我不知道它是什么。它比WM_用户高,但我搜索了我们的代码库,没有找到任何参考,所以我认为它不是我们的。。。Windows是否使用0x400以上的自定义消息?如果是,我如何查找此消息?您可以在Windows标题中搜索字符串,如0x444,0x0444,0x0000044,等等 它也可能是一个恶意应用程序,它发送不应该发送的消息。来自以下文档: 第二个范围内的消息编号 (WM_用户通过0x7FFF)可以 由应用程序定义并用于 在私人窗口内发

我收到一封代码为1092(0x444)的windows邮件,我不知道它是什么。它比WM_用户高,但我搜索了我们的代码库,没有找到任何参考,所以我认为它不是我们的。。。Windows是否使用0x400以上的自定义消息?如果是,我如何查找此消息?

您可以在Windows标题中搜索字符串,如
0x444
0x0444
0x0000044
,等等

它也可能是一个恶意应用程序,它发送不应该发送的消息。

来自以下文档:

第二个范围内的消息编号 (WM_用户通过0x7FFF)可以 由应用程序定义并用于 在私人窗口内发送消息 班级。这些值不能用于 定义有意义的消息 在整个应用程序中,因为 一些预定义的窗口类已经存在 定义此范围内的值用于 例如,预定义的控件类 例如按钮、编辑、列表框和 组合框可以使用这些值。 不应删除此范围内的邮件 发送到其他应用程序,除非 应用程序的设计目的是 交换消息并附加 信息编号的含义相同

因此,该消息可以是任何内容。
例如,快速查看MFC源代码可以发现这些定义

// COMMCTRL.H
#define TB_ADDBUTTONSW        (WM_USER + 68)

// RICHEDIT.H
#define EM_SETCHARFORMAT      (WM_USER + 68)

我搜索了
68
,因为
0x444=0x400+0x44=WM_用户+68

任何应用程序都可以使用WM_用户或WM_应用程序上方的消息。Windows本身甚至使用WM_用户上方的消息。因为任何应用程序都可以广播这些消息值(有些应用程序可以广播,因为它们是由白痴编写的),所以您应该始终将注册消息用于专用通信


您可以使用Spy++尝试跟踪这些消息,但您不能保证将它们全部停止,因此最好使用RegisterWindowMessage来避免它们。

EM_SETCHARFORMAT。它一定是这一个,正如我在看到它之前所说的SetFont。非常感谢,一般来说也是一篇好文章。@John,我很高兴我能帮上忙:)