Winapi Qt和windows消息

Winapi Qt和windows消息,winapi,visual-c++,qt5,Winapi,Visual C++,Qt5,我想通过接收Qt中的自定义消息。基本上,我在实现中添加了一个开关WM_USER+1:,但是即使我没有发送任何东西,我也会收到通知。我假设Qt也可以在内部使用用户消息。有没有办法知道QT使用的最后一个id,以便我可以使用第一个免费id 在本例中,这将是Qt,它将该范围用于自己的目的。您必须查阅Qt文档,以查看可供您使用的消息范围。这可能是WM_APP的范围,但是如果Qt也使用了这个范围(并且没有提供一种方法让您请求消息使用),那么您将不得不处理已注册的窗口消息及其缺点。再次检查Qt文档 编辑,因为

我想通过接收Qt中的自定义消息。基本上,我在实现中添加了一个
开关WM_USER+1:
,但是即使我没有发送任何东西,我也会收到通知。我假设Qt也可以在内部使用用户消息。有没有办法知道QT使用的最后一个id,以便我可以使用第一个免费id

在本例中,这将是Qt,它将该范围用于自己的目的。您必须查阅Qt文档,以查看可供您使用的消息范围。这可能是
WM_APP
的范围,但是如果Qt也使用了这个范围(并且没有提供一种方法让您请求消息使用),那么您将不得不处理已注册的窗口消息及其缺点。再次检查Qt文档

编辑,因为我第一次不够清楚

不要尝试找到一些你可以使用的随机的
WM\u USER+n
。我放在那里的链接的要点是,Qt可以自由地使用所有的
WM_USER
消息,无论它想要什么。忽略这一点,您的代码将在未来的Qt版本中中断。您必须查阅Qt文档,查看Qt是否在
WM\u应用程序
范围内(或甚至在
WM\u用户
范围内,但必须在文档中明确说明)明确定义了一组安全使用的消息,如果不是,别无选择只能调用
RegisterWindowMessage()
来注册系统范围的命名消息。如有必要,询问Qt邮件列表。检查源代码不起作用,因为当前源代码不是Qt未来版本的合同。

在本例中,这将是Qt,它将该范围用于自己的目的。您必须查阅Qt文档,以查看可供您使用的消息范围。这可能是
WM_APP
的范围,但是如果Qt也使用了这个范围(并且没有提供一种方法让您请求消息使用),那么您将不得不处理已注册的窗口消息及其缺点。再次检查Qt文档

编辑,因为我第一次不够清楚


不要尝试找到一些你可以使用的随机的
WM\u USER+n
。我放在那里的链接的要点是,Qt可以自由地使用所有的
WM_USER
消息,无论它想要什么。忽略这一点,您的代码将在未来的Qt版本中中断。您必须查阅Qt文档,查看Qt是否在
WM\u应用程序
范围内(或甚至在
WM\u用户
范围内,但必须在文档中明确说明)明确定义了一组安全使用的消息,如果不是,别无选择只能调用
RegisterWindowMessage()
来注册系统范围的命名消息。如有必要,询问Qt邮件列表。检查源代码是行不通的,因为当前源代码不是Qt未来版本的合同。

我希望Qt头文件有一个宏或smth,它定义了最后使用的WM_USER+n值,但没有,所以很遗憾,我只能坚持使用一个随机值,而在Qt源代码中搜索WM_USER时,它没有出现。Sad:(我希望Qt头有一个宏或smth,它定义了最后使用的WM_USER+n值,但是没有,所以很遗憾,我不得不坚持使用一个随机值,在Qt源中搜索WM_USER时没有找到它。Sad:(