だから私、その後のKeyDownイベントをリッスンし、次のコードは、すぐにそれは1受け取ると終了します: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など) sは押された)。
左コントロールキーのこの異常な動作を無効にする方法はありますか?
Btw、これはWindowsでmingwを使用しています。私は他のコンパイラ/オペレーティングシステムでこの動作をテストしていません。
[SDL_WM_GrabInput](http://sdl.beuc.net/sdl.wiki/SDL_WM_GrabInput)を試しましたか? –
@Banthar私はそれを試みたが、それはすべてマウスを罠にした。 – Ponkadoodle