来自 GetMessage 的 Windows 消息 9

Windows message 9 from GetMessage?

本文关键字:消息 Windows GetMessage 来自      更新时间:2023-10-16

编辑:删除我粘贴在这里的代码。我的代码中的错误导致了所描述的行为(在 switch 语句中缺少break(。

在处理来自GetMessage的消息的switch语句中,我扔了几条没有定义别名的消息的整数值(使用我在这里找到的列表:http://www.mazama.net/scheme/v12/w32message.scm(,如果收到这些消息之一,就会弹出消息框。我的期望是,未命名的消息只是被弃用,永远不会出现。

我还尝试了一些WM_ACTIVATE的代码,如果我点击它,这些代码应该最小化窗口。我搞砸了一些东西,所以窗口一打开就最小化了,但这不是把我带到这里的原因。一旦窗口打开并最小化,就会弹出消息框,告诉我 Windows 发送了消息 9。如果我关闭它,消息框会再次弹出。

所以这让我想知道,有谁知道是什么事件触发了该消息?或者,就此而言,GetMessage 返回的任何没有别名的整数值?我发现列出Windows消息的所有内容都省略了与我上面发布的链接相同的数字。

在公共头文件中列出的低编号消息很可能是已弃用的 Windows 3.1(或更早版本(消息,这些消息是为了兼容性而保留的(或者因为没有人认为删除它们足够重要Microsoft(。

您可以在各种Windows替代项目(如Wine或ReactOS(的源代码中找到它们的线索。事实上,从 ReactOS 标头中:

#define WM_SETVISIBLE      0x00000009

这似乎是WM_SHOWWINDOW消息的先驱,并且与相同的参数同时发送。

我还在新闻组线程中找到了一个关于消息0x0004的讨论,甚至 ReactOS 似乎也不知道。在那里,消息被描述为WM_SIZEWAIT但没有关于其功能的线索。

简而言之,这些消息未被记录是有原因的 - 您可能正在编写的任何软件都不需要或使用它们,您应该简单地忽略它们。