4.5 Wie kann ich Formulare ohne Titelleiste verschieben?
VB4-VB6
Von: Dominik Grolimund [Home]
Jetzt hat man sein Formular von der Titelleiste befreit und vermisst die Möglichkeit das Formular mit der Maus zu verschieben. Mithilfe der API Funktionen ReleaseCapture und SendMessage lässt sich diese Funktionalität aber ganz schnell wiederherstellen. SendMessage schickt dabei die Nachricht WM_NCLBUTTONDOWN mit dem Parameter HT_CAPTION an das Fenster und gauckelt diesem so einen Mausklick auf die Titelleiste vor:
' Deklaration: Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByRef lParam As Any _ ) As Long Private Const WM_NCLBUTTONDOWN As Long = &HA1 Private Const HTCAPTION As Long = 2
Im MouseUp- Ereignis der Form (oder beliebiges Steuerelement) stehen folgen Zeilen:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then ReleaseCapture SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0& End If End Sub