编辑:删除我在这里粘贴的代码。我的代码中的错误导致了所描述的行为(在switch语句中缺少break
)。
在处理来自switch
的消息的GetMessage
语句中,我抛出了几个未定义别名的消息的整数值(使用我在此处找到的列表:{{ 3}})如果收到其中一条消息,将弹出消息框。我的期望是,未命名的消息只是被弃用,而且永远不会出现。
我还尝试了WM_ACTIVATE
下的一些代码,如果我点击它就应该最小化窗口。我搞砸了一些东西,所以窗口打开时窗口最小化,但这并不是我带到这里的原因。一旦窗口打开并最小化,弹出消息框就会告诉我Windows发送的消息9.如果我解除它,消息框会再次弹出。
所以它让我想知道,有没有人知道什么事件触发了这条消息?或者,就此而言,GetMessage返回的任何没有别名的整数值?我发现列出Windows消息的所有内容都省略了与我上面发布的链接相同的数字。
答案 0 :(得分:0)
未在公共头文件中列出的低编号邮件很可能是为了兼容性而保留的Windows 3.1(或更早版本)消息(或者因为Microsoft的任何人都认为它不足以删除它们)。
您可以在源中找到各种Windows替换项目(如Wine或ReactOS)的线索。实际上,来自ReactOS标题:
#define WM_SETVISIBLE 0x00000009
这似乎是WM_SHOWWINDOW
消息的先行者,并且使用相同的参数同时发送。
我还在a newsgroup thread中找到了关于消息0x0004
的讨论,甚至连ReactOS似乎都不知道。消息被描述为WM_SIZEWAIT
,但它的功能没有任何线索。
简而言之,这些消息没有记录是出于某种原因 - 您可能正在编写的任何软件都不需要或使用这些消息,您应该忽略它们。