Rubrik: Oberfläche · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 29.12.00 |
Größenänderung zur Laufzeit Fenster und/oder Objekte per API zur Laufzeit positionieren und in der Größe anpassen. | ||
Autor: Dieter Otter | Bewertung: | Views: 19.328 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgender API-Funktion läßt sich ein Fenster oder Objekt zur Laufzeit positionieren und in der Größe anpassen.
' Hier die benötigte API-Funktion Private Declare Function MoveWindow Lib "user32" ( _ ByVal hwnd As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal bRepaint As Long) As Long ' Fenster positionieren und Größe anpassen Private Sub Form_Load() MoveWindow Me.hwnd, 200, 200, 350, 400, 1 End Sub
Anmerkungen:
Die Angaben x, y, nWidth, nHeight müssen in Pixel angegeben werden. Der letzte Parameter legt fest, ob das Fenster/Objekt automatisch "neugezeichnet" werden soll (1=neuzeichnen / 0=kein autom. Neuzeichnen)
Mit dieser API-Funktion ist es auch möglich z.B. die "Aufklapp-Höhe" einer Combobox zu ändern.
' Aufklapphöhe einer Combobox festlegen Public Sub SetComboDropDownHeight(Combo As ComboBox, _ ByVal lpHeight As Long) Dim OldScaleMode As Integer With Combo OldScaleMode = .Parent.ScaleMode .Parent.ScaleMode = vbPixels MoveWindow Combo.hWnd, .Left, .Top, .Width, lpHeight, 1 .Parent.ScaleMode = OldScaleMode End With End Sub
Beispiel:
' Aufklapphöhe 150 Pixel SetComboDropDownHeight Combo1, 150
Auch hier erfolgt die Höhen-Angabe in Pixel.