キャッチゲームの制作 VB6 | |
(3) 終了処理 |
ゲーム画面の体裁上、ウィンドウに終了のボタンを配置するのは適当でないこともある。ここでは、コントロールボタンの閉じるをクリックするかEscキーを押すと終了するようにプログラムする。
キー入力処理は、Form_KeyDownプロシージャに書いたが、移動処理と区別できるようにForm_KeyPressプロシージャにプログラムすることにする。KeyPressでは引数KeyAsciiで押したキーの文字コードが得られる。Escキーを押すと得られる文字コードはキーコードと同じ定数vbKeyEscapeである。
・プログラムリスト
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyEscape Then 'ESCキー
Unload Me
End If
End Sub
押されたキーがEscキーのときUnload Meを実行する。
Unload Meが実行されたときやコントロールボタンの終了がクリックされたときにはForm_QueryUnloadプロシージャが呼び出されるので、具体的な終了処理(終了確認、現状保存、スコア記録など)はここへ書く。今回は終了確認の処理だけである。(次のリスト)
・プログラムリスト
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim r As Integer r = MsgBox("終了してもよろしいですか?", vbYesNo, Form1.Caption) '終了確認 If r = vbNo Then 'No(いいえ)選択 Cancel = True '終了しない Exit Sub 'このプロシージャを抜け出す End If End 'プログラム終了 End Sub
メッセージボックス(MsgBox)でいいえ(No)がクリックされるとvbNoが得られる。If文でいいえのときだけ引数CancelをTrue(真)に設定してExit Subでプロシージャを抜け出すことでプログラムは終了しない。
(3) 終了処理 | |
Copyright © 2001,2002 Hiroshi Masuda |