Come spostare un Form privo della TitleBar
Questa tip dimostra come si può spostare un form privo della TitleBar, con il mouse. In questo esempio puoi cliccare in ogni parte del form e trascinarlo come se usassi la TitleBar.
In un modulo BAS inserire il seguente codice:
Option Explicit
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Sub ReleaseCapture Lib "user32" ()
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Public Sub MovimentoForm(frm As Form, Button As Integer)
Dim lngReturnValue As Long
If Button = 1 Then
'cambia il puntatore del mouse e
gli assegna quello utilizzato per lo spostamento del Form
frm.MousePointer = 15
Call ReleaseCapture
lngReturnValue = SendMessage(frm.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
'una volta rilasciato il form
torna il puntatore standard
frm.MousePointer = 0
End If
End Sub
Per comodità, collocare un CommandButton nel Form, in modo da poter chiudere
il programma.
Assegnare le seguenti proprietà al Form, se vogliamo far scomparire la TitleBar.
BorderStyle = 3 - Fixed Dialog (oppure 0 - None, oppure 1
- Fixed Single)
ControlBox = False
Caption = ""
Nella sezione Codice del Form inserire:
Option Explicit
Private Sub Command1_Click()
Unload Me
End
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
MovimentoForm Form1, Button
End Sub
Se nel Form vi sono altri controlli, inserire nell'evento MouseMove dei vari controlli:
MovimentoForm Form1, Button
Dove Form1 è il nome del Tuo Form. Così facendo si potrà spostare il Form
cliccando in qualsiasi parte all'interno dello stesso.
Non rimane che avviare il programmino (F5) e vedere l'effetto.
Testato su: Windows 98, Windows Me, Windows 2000 Professional