0

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

switch处理来自的消息的语句中GetMessage,我为一些没有定义别名的消息添加了整数值(使用我在此处找到的列表:http: //www.mazama.net/scheme/v12/w32message .scm),如果收到这些消息之一,则会弹出消息框。我的期望是未命名的消息被简单地弃用并且永远不会出现。

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

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

4

1 回答 1

1

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

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

#define WM_SETVISIBLE      0x00000009

这似乎是WM_SHOWWINDOW消息的前身,并与相同的参数同时发送。

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

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

于 2014-11-09T01:26:22.627 回答