我想從一個控制檯,顯示自啓動程序以來的時間顯示時間的事件驅動的程序。C++:試圖創建事件驅動的控制檯(但堅持一個問題)
我創建了一個函數:
WORD GetKey(HANDLE input)
{
INPUT_RECORD Event;
DWORD Read;
ReadConsoleInput(input,&Event,1,&Read);
if(Event.EventType == KEY_EVENT)
{
if(Event.Event.KeyEvent.bKeyDown)
{
return Event.Event.KeyEvent.wVirtualKeyCode;
}
}
return 0;
}
然後我用它進主while()循環。但是,當我啓動程序時,它滯後(顯示時鐘暫停大約3-5秒延遲)。更重要的是奇怪的這個問題是,當我按住「1」鍵,滯後問題剛剛過去..:
WORD LastAction = GetKey(input) //this chunk of code lies in the main while(!quit)
switch(LastAction)
{
case VK_ESCAPE:
quit = true;
break;
case '1':
case VK_NUMPAD1:
break;
default:
break;
}
是不是因爲我的ReadConsoleInput()的理解是不夠的?或者我的代碼效率不高?
請告知我在這個問題上
THX
您在while()循環中添加了其他內容嗎? – Raveline 2011-02-26 08:43:15
是的,但這不是問題,因爲它與GetKey()函數無關。即使我試圖刪除那部分,它仍然會發生。 – user385261 2011-02-26 09:02:24
你爲什麼不使用Read變量? – 2011-02-26 12:29:54