【问题标题】:How to get the name of a Windows message inside WndProc method?如何在 WndProc 方法中获取 Windows 消息的名称?
【发布时间】:2014-05-01 18:35:59
【问题描述】:

我重写了 WndProc 方法来处理 windows 消息,但是当我打印 message.Msg 时,它是一个 49334 形式的整数。如何使用此值获取实际的偶数名称或数字?

我在这里有消息列表: http://www.autohotkey.com/docs/misc/SendMessageList.htm

【问题讨论】:

  • 0xc000到0xffff之间的消息号为注册消息,winapi底层函数为RegisterWindowMessage()。由代码使用,以确保它可以与保证的唯一消息编号进行通信,不会发生冲突。显然你永远不想惹他们。

标签: c# .net winforms winapi


【解决方案1】:

没有直接获取“名称”的方法 - 实际消息整数 ID 代码。

但是,您可以获取链接的列表并构建 Dictionary<int,string> 以将 ID 映射到您要报告或使用的“名称”。

【讨论】:

  • 谢谢 Reed,你知道如何将 int 格式转换为 0x00 格式,这样我至少可以手动快速查找一下吗?
  • @JoanVenge 您也可以输入 0x00 形式的值 - 否则,电子表格应该能够批量转换这些值
  • 谢谢,我的意思是,例如,如果我得到一个像 49334 这样的值,如何以编程方式将其转换为 0x00,以便我可以手动查找,因为它只是我感兴趣的一条消息?跨度>
  • Windows 计算器有一个程序员模式。
  • @JoanVenge 这听起来像是用户指定的消息,而不是标准消息... Windows 消息可以使用任何 int,您可以使用 Windows API 发送自己的消息。请参阅此处:msdn.microsoft.com/en-us/library/windows/desktop/… 0xC*** 是定义自定义字符串消息的标准方式。
猜你喜欢
  • 2012-02-08
  • 2012-03-27
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多