● メモ帳を終了する ●

起動したばっかりなのに…

それでは、もう1つ標準モジュール(オブジェクト名:何でもよろしい)を作成してください。

起動したメモ帳を終了させるコードを書きます。メモ帳が存在していたらメモ帳を終了する、という簡単な処理です。それでは、下のコードを書きましょう

Private Declare Function IsWindow Lib "user32" (ByVal hWnd As Long) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10 '終了メッセージ

'---------------------------------------------------------------
' 関数名: CloseNotepad
' 機能 : メモ帳を終了する
' 引数 : (in)hNotepad … メモ帳のハンドル
' 返り値 :正常:1 エラー:0
'---------------------------------------------------------------
Public Function CloseNotepad(ByVal hNotepad As Long) As Long

  Dim ret As Long

  '起動したメモ帳は存在していない
  If IsWindow(hNotepad) = 0 Then Exit Function

  '終了メッセージを送る
  ret = SendMessage(hNotepad, WM_CLOSE, 0&, ByVal 0&)

  CloseNotepad = IIf(ret, 0, 1)

End Function

とまあ、関数はこんな感じです。

それでは、フォームモジュールにコマンドボタン(オブジェクト名:cmdCloseNotepad)を配置し、クリックイベントに次のコードを書いて動作を確認してみてください。

Private Sub cmdCloseNotepad_Click()

  Call CloseNotepad(hNotepad)

End Sub

どうです、うまくいきました?これから先もこんな調子で進んでいきます。今回、でてきた SendMessage 関数はこれから何回も登場することになります。こう、ご期待!!


[ インデックスページへ  |  前のページへ  |  次のページへ ]