キャッチゲームの制作 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 

 

 

inserted by FC2 system