【发布时间】:2020-05-09 18:28:43
【问题描述】:
我有一个奇怪的方法,我得到了所有其他虚拟键,但没有收到VK_DELETE?这是一个 MFC 应用程序,基于 CDialogEx。我在PreTranslateMessage() 中检查它
if (pMsg->wParam==VK_SPACE) {
// do my stuff - WORKS!
}
else if (pMsg->wParam==VK_INSERT) {
// do my stuff - WORKS!
draw=true;
}
else if (pMsg->wParam==VK_DELETE) {
// do my stuff - NEVER RECEIVED!!
}
else ... etc ...
我从上面的代码中复制/粘贴,以确保 if 语句中没有我看不见的东西。
有什么想法吗?
TIA!!
【问题讨论】:
-
不希望听起来有侮辱性,但您是否检查过(例如在文本编辑器中)您的删除键确实有效?
-
是的,它有效,在这里和任何地方都可以使用它。也试过数字键盘上的那个,还是没有断点,也没有动作。在项目中搜索 VK_DELETE 发现它是其他东西的加速器(未激活/未显示),但在 F6 和 F7 的位置,所以我尝试了 VK_F6 并且效果很好,因此与此无关。
-
嗯。我在我的一个项目中尝试过,插入代码来拦截 VK_DELETE 和 VK_SPACE(发出不同的哔声),它工作正常。 (我有一个从 CDialogEx 派生的对话类,它已经覆盖了
PreTranslateMessage()并为其他键处理WM_KEYDOWN。)