1
所以我有以下的代碼,偵聽keydown事件,然後只要它接受一個退出:SDL左控制鍵被釋放時keydown事件被觸發
int main(int argc, char** argv) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_DOUBLEBUF);
SDL_Event _event;
while (1) {
while (SDL_PollEvent(&_event)) {
if (_event.type == SDL_KEYDOWN) {
return 0;
}
}
SDL_GL_SwapBuffers();
}
}
當我運行它,我可以按任意箭頭鍵,字母,數字,F1-F12 ...除了左側控制鍵外,幾乎可以使用任何按鍵,程序將立即退出。
但是當我按下左控制鍵,程序不會退出,直到我發佈的關鍵。
雖然示例沒有顯示它,但在按住左控制按鈕時(例如ctrl + s)按下另一個按鍵會導致丟失控件keydown事件(以及第二個事件「 s'被按下)。
有什麼辦法可以禁用左控制鍵這種奇怪的行爲?
順便說一句,這是在Windows上使用mingw。我還沒有用任何其他編譯器/操作系統測試過這種行爲。
您是否試過[SDL_WM_GrabInput](http://sdl.beuc.net/sdl.wiki/SDL_WM_GrabInput)? –
@Banthar我試過了,但它所做的只是捕捉鼠標。 – Ponkadoodle