TranslateMessage,在回复WM_SYSKEYDOWN
条消息时,会以与WM_KEYDOWN
/ WM_CHAR
处理方式平行的方式生成WM_SYSCHAR条消息。但是这些消息的用途是什么?它们不能被解释为用户键入文本,也不能将它们解释为热键(因为这是WM_SYSKEYDOWN
的用途)。那么,他们有什么用? (总是神秘的)DefWindowProc
对这些消息做了什么吗?我应该在应用程序中使用它们(或者应该忽略它们)?
MSDN的Keyboard Input页面,标题为字符消息,内容如下:
WM_SYSCHAR消息表示系统字符。与WM_SYSKEYDOWN一样,您通常应该将此消息直接传递给DefWindowProc。否则,您可能会干扰标准系统命令。特别是,不要将WM_SYSCHAR视为用户键入的文本。
哪个说不是,但是如果DefWindowProc
没有看到这些消息,则无法指定可能会破坏的内容?更不用说TranslateMessage
不是功能消息循环的要求,因此我认为DefWindowProc
可以不依赖于生成的这些消息。