C++;PC键盘释放事件的程序 我编写C++代码来控制用户界面文件。目的是在按下按钮后调整UI的FPS(每秒帧数)。 按按钮1:调整UI以低FPS运行。 按按钮0:将UI调整回以原始FPS运行。 目前,如果我按下按钮1并按住,我的程序可以在低FPS下工作。若我立即按下并释放,UI将不再以低FPS运行。我想使FPS固定在按下并释放键盘按钮后的值,而不必按住它

C++;PC键盘释放事件的程序 我编写C++代码来控制用户界面文件。目的是在按下按钮后调整UI的FPS(每秒帧数)。 按按钮1:调整UI以低FPS运行。 按按钮0:将UI调整回以原始FPS运行。 目前,如果我按下按钮1并按住,我的程序可以在低FPS下工作。若我立即按下并释放,UI将不再以低FPS运行。我想使FPS固定在按下并释放键盘按钮后的值,而不必按住它,c++,ascii,keyboard-events,C++,Ascii,Keyboard Events,请告诉我修改代码以获得预期结果的方法 以下是我的简短代码: double ti = FPS.Tick(); // original FPS if(Inp.Key[0] == 1) { ti = FPS.Tick(); do { ti = FPS.Tick(); }while(Inp.Key[0] != 1); } else if(Inp.Key[1] == 1) { ti = 0.001; do { ti = 0.001; }while(Inp.

请告诉我修改代码以获得预期结果的方法

以下是我的简短代码:

double ti = FPS.Tick(); // original FPS
if(Inp.Key[0] == 1)
{
  ti = FPS.Tick();
  do
  {
    ti = FPS.Tick();
  }while(Inp.Key[0] != 1);
}

else if(Inp.Key[1] == 1)
{
  ti = 0.001;
  do
  {
    ti = 0.001;
  }while(Inp.Key[1] != 1);
}

UI.Run(ti); // execute UI at the adjusted FPS.

若你们的意思是在前台应用程序上释放密钥,那个么使用本地钩子。请参见msdn上的
SetWindowsHookEx
。您需要
NULL
对于
HINSTANCE
意味着没有dll

反复将值0.001分配给一个double会发生什么?您使用什么环境或库来测量键盘事件?标准C++甚至不知道有键盘。我在VisualStudio 2017中运行程序。我的公司有一个由CTO开发的库,但他们没有向我解释该库的细节。然后,我尝试了在while(1)中使用include to getch()的另一种方法。但是如果我将while(1)添加到该函数中,UI将无法显示。我认为重点是逻辑,而不是图书馆。您可以将Inp.Key[0]视为基于ascii码定义的字符“0”。