30.指定のウインドウにメッセージを送る



< 使用用途 >
ここではForm1の上で左クリックを押しながらマウスを動かすとForm1が移動する方法を記述しています      

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
   => ダウンロード ・・・ 下に書いてあるサンプルソースと同じです


< 説明 >
API関数のSendMessageとReleaseCapture を使用します。
SendMessage=>指定のウインドウにメッセージを送る  
  <引数>
      hWnd:     ウインドウのハンドル
      wMsg:     定数(WM_××参照)
      wParam:    定数(HTCAPTION)
      lParam:    常に0
  @戻り値@  
      通常使わない
  *使い方はこれ以外にも沢山ある。


< SAMPLE >
'ここではForm1の上で左クリックを押しながらマウスを動かすとForm1が移動する方法を記述しています

'標準モジュール
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Sub ReleaseCapture Lib "user32" ()

Public Const WM_NCLBUTTONDOWN = &HA1 '非クライアント領域で 左ボタンを押す
Public Const HTCAPTION = 2  ’マウスヒットテストコード


'ここからはフォームの処理
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

  Dim Ret As Long
   If Button =1 Then
     'マウスキャプチャを解放する
     ReleaseCapture

     'Form1をドラッグせよという命令を送る
     RET = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)

   End If

End Sub





API 技術関連のページへ戻る

ホーム PV ランキング