Авг 25, 2013 -
Уроки Visual Basic.NET
Написать комментарий
Уроки Visual Basic.NET
Написать комментарий Перемещение формы №2
Возможно для саморазвития я приведу практически два одинаковых примера перемещения формы.
Первый вариант с помощью API функций SendMessage и ReleaseCapture:
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Integer, ByVal wMsg As Integer, _
ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
ReleaseCapture()
SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.FormBorderStyle = FormBorderStyle.None
End Sub
Слишком много кода, не правда ли?
Второй вариант, с помощью структуры , посылаем сообщение Windows:
Private Const WM_NCHITTEST As Integer = &H84
Private Const HTCAPTION = 2
Protected Overrides Sub WndProc(ByRef m As Message)
If (m.Msg = WM_NCHITTEST) Then
m.Result = IntPtr.op_Explicit(HTCAPTION)
Else
MyBase.WndProc(m)
End If
End Sub
Дополнительно:
Функция и функция .




Метки:
Евгений
Просмотров: 6 151
Запись опубликована в 19:41