【发布时间】:2014-10-08 01:53:27
【问题描述】:
我刚开始 MFC 编程,之前没有做过任何 UI 设计或编程。我想知道为什么有两条消息 WM_KEYUP 和 WM_KEYDOWN 是由 Windows 生成的,如果假设键盘正常,每个被按下的键肯定会被释放。
我认为只有一条消息 WM_KEYPRESSED 或其他内容就足够了,但是 windows 生成单独的消息是否有原因
谢谢
【问题讨论】:
-
假设您想在游戏中按 W 并按住它向前走,您的 WM_KEYPRESSED 解决方案将不起作用。它需要 WM_KEYDOWN 来启动前进的“状态”,并需要 WM_KEYUP 来停止它。
-
不要忘记按键消息也有一个重复计数器,因此当您按住一个键时,您会收到重复的按键消息,并且每次都会增加一个计数器。因此,您可以在每条重复消息上移至下一步。
标签: c++ windows visual-c++ mfc keyboard