Как запретить перемещение формы за заголовок - Visual Basic .NET
Формулировка задачи:
Как запретить перемещение формы за заголовок?
Решение задачи: «Как запретить перемещение формы за заголовок»
textual
Листинг программы
- Imports System.Runtime.InteropServices
- Public Class Form1
- Const SC_CLOSE As Integer = &HF010
- Const MF_BYCOMMAND As Integer = 0
- Const WM_NCLBUTTONDOWN As Integer = &HA1
- Const WM_NCHITTEST As Integer = &H84
- Const HTCAPTION As Integer = 2
- <DllImport("User32.dll")> _
- Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
- End Function
- <DllImport("User32.dll")> _
- Private Shared Function GetSystemMenu(ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
- End Function
- <DllImport("User32.dll")> _
- Private Shared Function RemoveMenu(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer) As Boolean
- End Function
- Protected Overrides Sub WndProc(ByRef m As Message)
- If m.Msg = WM_NCLBUTTONDOWN Then
- Dim result As Integer = SendMessage(m.HWnd, WM_NCHITTEST, IntPtr.Zero, m.LParam)
- If result = HTCAPTION Then
- Return
- End If
- End If
- MyBase.WndProc(m)
- End Sub
- Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs)
- MyBase.OnHandleCreated(e)
- Dim hMenu As IntPtr = GetSystemMenu(Handle, False)
- RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д