戻る

フォームを掴んで移動

目的

フォームを掴んで移動します。キャプションのないフォームなどの場合威力を発揮します。

ポイント

SendMessage APIを使って擬似的にフォームのキャプション部分を掴んでいるようにします。

サンプルコード

Option Explicit

Private Declare Function ReleaseCapture Lib "user32" () 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 HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1


Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' フォームを掴んで移動するサンプル

        ReleaseCapture
        
        SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&

End Sub

ソースのダウンロード