2

私は c++ テトリス ゲームを構築しています (c++ .Net ではありません)。コントロールがおかしい気がします。ユーザーが矢印キーの1つを押したときに、約10ミリ秒押し続けると、ウィンドウのリピート機能が開始されるようにしたいと思います。デフォルトでは約 500ms に設定されており、私のゲームには遅すぎます。キーダウンからリピートキーダウンに変わる速度を設定するにはどうすればよいですか? 繰り返す回数/秒ではありません。

ありがとう

*やりたいことは、リピートディレイを短くすることです

コントロール パネルのキーボード設定にリピート レートがありますが、これを設定するにはどうすればよいですか?

4

3 に答える 3

8

通常、これに対して行うことは、通常のキーリピート設定の対象となるメッセージに反応する代わりに、とWM_CHARを探し、実行しているタイマーに基づいてアクションを実行することです。たとえば、タイマーを 50 ミリ秒ごとに起動するように設定した場合、50 ミリ秒ごとに繰り返し、メッセージを受け取ったらすぐに最初のアクションを実行できます。WM_KEYDOWNWM_KEYUPWM_KEYDOWN

于 2009-09-17T21:29:13.543 に答える
1

MSDN によると、SystemParametersInfo関数を使用して、SPI_SETKEYBOARDSPEED、SPI_SETKEYBOARDDELAY を呼び出すこともできるようです。

于 2009-09-17T21:35:59.170 に答える
-4

void Key_Set() { DWORD 古い = 0;

SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &old, 0);


SystemParametersInfo(SPI_SETKEYBOARDDELAY,0, &old, 0);

}

于 2009-09-17T21:44:35.583 に答える