dポイントプレゼントキャンペーン実施中!

ください(ここまでタイトル)

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

A 回答 (3件)

フォームのKeyPreviewプロパティをTrueにして、フォームのKeyDown イベントで処理するのが一般的です。



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

プログラムの作りが判らないのでなんとも言えないのですが、多分こうすればという方法です。


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

所定の場所にフォーカスがある場合のキープレスイベントで決まったボタンを押し、


ボタンを押した後にゲーム操作を行った後、フォーカスを所定の場所に戻したらよいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!