【发布时间】:2025-09-22 10:00:01
【问题描述】:
我需要在KeyDown 事件中检测箭头键击。我知道它们需要设置为输入键,但我不清楚如何在 C++ 中完成它。找到了很好的答案 here、here 和 here。但那是 C#,我需要 C++。尝试像here 描述的那样实现在PreviewKeyDown 中有此代码,但没有运气。
switch (e->KeyCode)
{
case Keys::Down:
case Keys::Up:
case Keys::Right:
case Keys::Left:
case Keys::Space:
e->IsInputKey = true;
break;
}
我的KeyDown 有:
if (e->KeyCode == Keys::Left)
{
///
}
按左键不起作用。
我错过了什么?
【问题讨论】:
-
你想让我们说什么?您已经链接了回答您问题的相关链接。考虑发布您的代码,并完整地描述问题。 :)
-
如果我不够清楚,我很抱歉。我想在 C++ 中实现它。我不知道如何翻译 cpp 链接中的代码。我的问题是,更清楚地说,KeyDown 事件正在检测除箭头键、返回、制表符和空格之外的所有键。所以我认为我需要的是正确覆盖 IsInputKey 属性的 cpp 代码
-
你不要覆盖它,你应该在 previewkeydown 中调用它,如上一个链接中所述;)
-
好吧,我说我试过了……这是我 previewkeydown 中的代码。不起作用.. previewkeydown
-
switch (e->KeyCode) { case Keys::Down: case Keys::Up: case Keys::Right: case Keys::Left: case Keys::Space: e->IsInputKey =真;休息; }