【问题标题】:Can I force an Escape key "press" in C++?我可以在 C++ 中强制 Escape 键“按下”吗?
【发布时间】:2011-08-19 12:31:05
【问题描述】:

我知道如果用户按下设置键(在我的情况下为 Escape),您可以设置触发操作,如下所示:

transitions.push_back(new KeyTransition("GameMode", OIS::KC_ESCAPE));

我想知道的是我是否可以让程序“认为”Escape 键被按下,即使它没有被按下。例如,当用户点击一个按钮时,程序模拟退出键被按下并触发附加到它的事件。

【问题讨论】:

  • 嗯,是的,我们有 Ogre,但我认为它主要用于艺术方面。

标签: c++ visual-studio keypress


【解决方案1】:
//To force user to press escape key
#include<iostream.h>
#include<conio.h>
void main
{
    cout<<"press escape to exit\n";
loop:
    if(getch()==27);
    else 
    {
        if (getch()==27);
        goto loop;
    }
}

【讨论】:

  • 嵌套if (getch()==27);的目的是什么?是吞下一个键(不管它是什么),然后总是跳转到loop。该代码也没有回答这个问题。 OP 正在尝试模拟一个转义键,在用户按下它之前不会一直循环。
【解决方案2】:

【讨论】:

    【解决方案3】:

    执行此操作的一种方法不是将其绑定到特定的按键事件,而是使用更通用的方法。

    所以有一个像Cancel()GoBackOneScreen()这样的方法,不管ESC在做什么。然后你可以让 ESC 按键调用 GoBackOneScreen(),当你需要模拟 ESC 按键时,你可以通过调用 GoBackOneScreen() 方法来完成。

    【讨论】:

    • 这将是一个很好的方法,但是对于我正在处理的程序,尝试使方法执行与那条小线相同的功能是非常复杂的。
    • 我们的程序就是这样构建的。我的老板实际上是自己编写了这段代码。
    • 明白了...自从我完成 C++ 以来已经有一段时间了,只是想我会抛出一种更易于管理的方法。
    • 我很感激,但这不是我要的。 :) 不过谢谢。
    • 我认为OP所说的是他无法控制ESC键的接收器。他只能生成 ESC 键并希望最好。
    猜你喜欢
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多