Rubrik: Fenster | 22.03.05 |
GetWindowPlacement-Funktion Diese Funktion ermittelt die Standard Positionen eines Fensters und wie ein Fenster im Moment des Aufrufs angezeigt wird. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 14.601 |
Deklaration:
Declare Function SetWindowPlacement Lib "user32" ( _ ByVal hwnd As Long, _ lpwndpl As WINDOWPLACEMENT) As Long
Beschreibung:
Diese Funktion ermittelt die Standard Positionen eines Fensters und wie ein Fenster im Moment des Aufrufs angezeigt wird.
Parameter:
hwnd | Erwartet das Fensterhandle des Fensters, dessen Informationen ermittelt werden sollen. |
lpwndpl | Erwartet eine WINDOWPLACEMENT-Struktur, die mit den zu ermittelnden Informationen gefüllt wird. |
Rückgabewert:
Ist die Funktion erfolgreich, so wird ein Wert "ungleich 0" zurückgegeben, andernfalls der Wert "0". Für erweiterte Fehlerinformationen können Sie die GetLastError-Funktion aufrufen.
Beispiel:
Private Declare Function GetWindowPlacement Lib "user32" ( _ ByVal hwnd As Long, _ lpwndpl As WINDOWPLACEMENT) As Long Private Declare Function SetWindowPlacement Lib "user32" ( _ ByVal hwnd As Long, _ lpwndpl As WINDOWPLACEMENT) As Long Private Type POINTAPI x As Long y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type WINDOWPLACEMENT Length As Long flags As Long showCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECT End Type ' WINDOWPLACEMENT flags-Konstanten Private Const WPF_ASYNCWINDOWPLACEMENT = &H4 ' (Windows 2000,XP) Benutzt einen anderen ' Thread falls der Thread, der das Fenster besitzt, blockiert ist Private Const WPF_RESTORETOMAXIMIZED = &H2 ' (In Verbindung mit SW_SHOWMINIMIZED) ' Legt fest, dass das Fenster maximiert wird, wenn es wiederhergestellt ' wird, ungeachtet der vorangegangenen Fensterposition Private Const WPF_SETMINPOSITION = &H1 ' Legt fest, dass die ptMinPosition-Werte ' der Struktur übergeben werden sollen ' WINDOWPLACEMENT showCmd-Konstanten Private Const SW_HIDE = 0 ' Das Fenster wird / ist versteckt Private Const SW_MAXIMIZE = 3 ' Das Fenster wird / ist maximiert Private Const SW_MINIMIZE = 6 ' Das Fenster wird / ist minimiert Private Const SW_RESTORE = 9 ' Das Fenster wird / ist wiederhergestellt Private Const SW_SHOW = 5 ' Das Fenster wird / ist angezeigt Private Const SW_SHOWMAXIMIZED = 3 ' Das Fenster wird maximiert angezeigt und aktiviert Private Const SW_SHOWMINIMIZED = 2 ' Das Fenster wird minimiert angezeigt und aktiviert Private Const SW_SHOWMINNOACTIVE = 7 ' Das Fenster wird minimiert angezeigt und nicht aktiviert Private Const SW_SHOWNA = 8 ' Zeigt das Fenster an, aktiviert es aber nicht Private Const SW_SHOWNOACTIVATE = 4 ' Zeigt das Fenster in der bestmöglichen ' Größe und Position an, aktiviert es aber nicht Private Const SW_SHOWNORMAL = 1 ' Zeigt das Fenster in der bestmöglichen ' Größe und Position an und aktiviert es
' Ermitteln der Standardwerte des Fensters Private Sub Form_Load() Dim WPlace As WINDOWPLACEMENT, Retval As Long ' Struktur mit den Standardeigenschaften füllen WPlace.Length = Len(WPlace) Retval = GetWindowPlacement(Me.hwnd, WPlace) ' Struktur mit unseren Eigenschaften abändern With WPlace .showCmd = SW_SHOWNORMAL With .rcNormalPosition .Left = ((Screen.Width - Me.Width) / Screen.TwipsPerPixelX) _ / 2 .Top = ((Screen.Height - Me.Height) / Screen.TwipsPerPixelY) _ / 2 .Right = .Left + Me.Width / Screen.TwipsPerPixelX .Bottom = .Top + Me.Height / Screen.TwipsPerPixelY End With End With ' Fenster mit den neuen Werten auf dem Bildschirm zentrieren Retval = SetWindowPlacement(Me.hwnd, WPlace) End Sub