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 |