• 締切済み

VB6.0でボタンの選択状態を解除する方法を教えて

ください(ここまでタイトル) VB6.0で落ちものゲームを作っています。ゲーム画面には実際プレイする画面、左ボタン、右ボタン、下ボタン、ゲーム開始ボタン、一時停止ボタンが配置されています。上から落ちてくるアイテムをボタン若しくは方向キーで移動を可能にしたのですが、ゲーム開始ボタンを押すとゲーム開始ボタンが選択状態(フォーカス?)になり、方向キーを押しても他のボタンに選択が移るだけでゲームにキー入力が反映されません。何度が同じ方向キーを押しているとフォーカスがどのボタンからも外れ、正常にキー入力が反映される状態になります。ボタンを押しても選択状態にしない方法ってあるのでしょうか?VB6.0というバージョンもあり、検索しても方法が見つかりませんでした。お願いします。

みんなの回答

回答No.3

フォームのKeyPreviewプロパティをTrueにして、フォームのKeyDown イベントで処理するのが一般的です。 ***** MSDNより抜粋 ***** KeyPreview プロパティが真 (True) に設定されている場合、KeyDown イベントおよび KeyUp イベントは、フォーム上のコントロールよりも先に、フォームによって認識されます。KeyPreview プロパティは、全体に共通のキーボード処理ルーチンを記述する場合に使用します。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

プログラムの作りが判らないのでなんとも言えないのですが、多分こうすればという方法です。 > ゲーム開始ボタンを押すとゲーム開始ボタンが選択状態(フォーカス?)になり 開始ボタンの処理内で自分を 開始ボタン.enabled=false にし、一時停止ボタンを 一時停止ボタン.enabled=true にする。 > 方向キーを押しても他のボタンに選択が移るだけでゲームにキー入力が反映されません その反映をどのように行っているかわかりませんが、DoEvents を入れないと制御が他に移らないので、その状態ではないかと思います。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

所定の場所にフォーカスがある場合のキープレスイベントで決まったボタンを押し、 ボタンを押した後にゲーム操作を行った後、フォーカスを所定の場所に戻したらよいのでは?