Как запретить перемещение формы за заголовок - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы