VB-Homepage Tipp 374

Form und Objekte zur Laufzeit neu anordnen
(Form ohne Titelleiste verschieben)

Da es in der Praxis vermutlich eher darauf ankommt, eine gesamte Form
(ohne Titelleiste) verschieben zu können, hab ich dies explizit nochmal angegeben, der Tipp aber handelt hauptsächlich davon, dem Benutzer des Programmes die Möglichkeit einzuräumen, die enthaltenen Objekte einer Form nach belieben neu anzuordnen.

Grundsätzlich können alle Objekte mit diesem Tipp verschoben werden,
die die HwnD Eigenschaft besitzen.


1.
Für ein Beispiel benötigen Sie in Ihrem Projekt eine Form und ein Modul.

2.
Geben Sie im Modul unter
Allgemein/Deklarationen folgendes ein.

Public Declare Function ReleaseCapture Lib "user32" () As Long
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 Const WM_NCLBUTTONDOWN = &HA1
Public Const HTCAPTION = 2

3.
Desweiteren erstellen Sie mit dem einfügen des nachfolgenden Codes noch ein Prozedur Allgemein/SetObjectMoveReplace im Modul

Public Sub SetObjectMoveReplace(ObjHWND As Long)

ReleaseCapture
SendMessage ObjHWND, WM_NCLBUTTONDOWN, HTCAPTION, 0

End Sub

4.
Jetzt können Sie sich überlegen, welche Objekte Sie Ihrer Form hinzufügen möchten. (Picture,Check,Option,Textbox,Command)
Nicht nutzen können Sie Labelobjekte, dieses besitzt nicht die HwnD Eigenschaft, hier müßten Sie auf Textboxen mit gesetzter Locked Eigenschaft zurückgreifen.

5.
Haben Sie sich für die Objekte entschieden, müssen Sie für jedes Objekt,
daß verschoben werden darf, in der Mouse_Move Methode den
Funktionsaufruf definieren.
In unserem Beispiel, wird das Verschieben daran festgemacht,
ob eine Checkbox aktiviert wurde.

If Check1.Value = 1 Then SetObjectMoveReplace (Picture1.hwnd)

Der reine Funktionsaufruf lautet :  SetObjectMoveReplace (Picture1.hwnd)

In diesem Fall soll eine Picturebox verschoben werden.
Die Aktion wird so lange ausgeführt, wie die Maustaste gedrückt wird.
Analoges ist die natürlich auch für die gesamte Form anwendebar.

Tipp-Download

Quelle : CABWARE / http://www.ls-bb.tu-cottbus.de/cebware

Zurück zur Übersichtsseite