Как запретить перемещение формы за заголовок - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Как запретить перемещение формы за заголовок?

Решение задачи: «Как запретить перемещение формы за заголовок»

textual
Листинг программы
  1. Imports System.Runtime.InteropServices
  2. Public Class Form1
  3.     Const SC_CLOSE As Integer = &HF010
  4.     Const MF_BYCOMMAND As Integer = 0
  5.     Const WM_NCLBUTTONDOWN As Integer = &HA1
  6.     Const WM_NCHITTEST As Integer = &H84
  7.     Const HTCAPTION As Integer = 2
  8.     <DllImport("User32.dll")> _
  9.     Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Integer
  10.     End Function
  11.     <DllImport("User32.dll")> _
  12.     Private Shared Function GetSystemMenu(ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
  13.     End Function
  14.     <DllImport("User32.dll")> _
  15.     Private Shared Function RemoveMenu(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer) As Boolean
  16.     End Function
  17.     Protected Overrides Sub WndProc(ByRef m As Message)
  18.         If m.Msg = WM_NCLBUTTONDOWN Then
  19.             Dim result As Integer = SendMessage(m.HWnd, WM_NCHITTEST, IntPtr.Zero, m.LParam)
  20.             If result = HTCAPTION Then
  21.                 Return
  22.             End If
  23.         End If
  24.         MyBase.WndProc(m)
  25.     End Sub
  26.     Protected Overrides Sub OnHandleCreated(ByVal e As EventArgs)
  27.         MyBase.OnHandleCreated(e)
  28.         Dim hMenu As IntPtr = GetSystemMenu(Handle, False)
  29.         RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
  30.     End Sub
  31. End Class

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы