Авг 25, 2013 - Уроки 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
Слишком много кода, не правда ли?
Второй вариант, с помощью структуры
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
Дополнительно:
Функция
Похожие записи:
Метки: Перемещение формы №2
Евгений
Просмотров: 6 133
Запись опубликована в 19:41