Free Hit Counters

Thursday, April 21, 2011

Move And Resize Form

Private PrePos As New Point
    Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        Dim Pos As New Size(e.X - PrePos.X, e.Y - PrePos.Y)
        If e.Button = MouseButtons.Left Then
            Me.Location += Pos
            PrePos = e.Location - Pos
        Else
            PrePos = e.Location
        End If
    End Sub
    
    Private Const HTCAPTION As Integer = 2
    Private Const HTLEFT As Integer = 10
    Private Const HTRIGHT As Integer = 11
    Private Const HTTOP As Integer = 12
    Private Const HTTOPLEFT As Integer = 13
    Private Const HTTOPRIGHT As Integer = 14
    Private Const HTBOTTOM As Integer = 15
    Private Const HTBOTTOMLEFT As Integer = 16
    Private Const HTBOTTOMRIGHT As Integer = 17
    Private Const WM_NCHITTEST As Integer = &H84
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        If m.Msg = WM_NCHITTEST Then
            Dim pt As New Point(m.LParam.ToInt32)
            pt = Me.PointToClient(pt)
            If pt.X < 5 AndAlso pt.Y < 5 Then
                m.Result = New IntPtr(HTTOPLEFT)
            ElseIf pt.X > (Me.Width - 5) AndAlso pt.Y < 5 Then
                m.Result = New IntPtr(HTTOPRIGHT)
            ElseIf pt.Y < 5 Then
                m.Result = New IntPtr(HTTOP)
            ElseIf pt.X < 5 AndAlso pt.Y > (Me.Height - 5) Then
                m.Result = New IntPtr(HTBOTTOMLEFT)
            ElseIf pt.X > (Me.Width - 5) AndAlso pt.Y > (Me.Height - 5) Then
                m.Result = New IntPtr(HTBOTTOMRIGHT)
            ElseIf pt.Y > (Me.Height - 5) Then
                m.Result = New IntPtr(HTBOTTOM)
            ElseIf pt.X < 5 Then
                m.Result = New IntPtr(HTLEFT)
            ElseIf pt.X > (Me.Width - 5) Then
                m.Result = New IntPtr(HTRIGHT)
            Else
                MyBase.WndProc(m)
            End If
        Else
            MyBase.WndProc(m)
        End If
    End Sub

Free Hit Counters