如何查找模糊的Windows消息代码?

时间:2010-02-19 08:52:27

标签: mfc winapi

我收到一条代码为1092(0x444)的Windows消息,我不知道它是什么。它高于WM_USER,但我搜索了我们的代码库,没有找到参考,所以我不认为它是我们的...我的Windows使用0x400以上的自定义消息,如果是这样,我该怎么看?

3 个答案:

答案 0 :(得分:8)

来自WM_USER的文件:

  

第二个范围内的消息编号   (WM_USER到0x7FFF)可以   由应用程序定义和使用   在私人窗口内发送消息   类。这些值不能用于   定义有意义的消息   在整个申请中,因为   一些预定义的窗口类已经   定义此范围内的值。 :用于   例如,预定义的控件类   比如BUTTON,EDIT,LISTBOX和   COMBOBOX可能会使用这些值。   此范围内的消息不应该是   发送到其他应用程序,除非   应用程序已设计为   交换消息并附加   与消息号码的含义相同。

因此,该消息可以是任何 例如,快速浏览一下MFC源代码就会发现这些定义

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

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

我搜索了68因为0x444 = 0x400 + 0x44 = WM_USER + 68

答案 1 :(得分:0)

您可以在Windows标题中搜索0x4440x04440x00000444等字符串。

它也可能是一个流氓应用程序发送它不应该发送的消息。

答案 2 :(得分:0)

任何应用程序都可以使用WM_USER或WM_APP以上的消息。 Windows本身甚至使用WM_USER以上的消息。因为任何应用程序都可以广播这些消息值(有些应用程序可以播放这些消息值,因为它们是由白痴写的),所以您应该始终使用已注册的消息进行私人通信。

你可以使用Spy ++来尝试跟踪这些消息,但你不能保证永远阻止它们,所以最好通过使用RegisterWindowMessage来避免它们。