Access- und Hilfefenster automatisch nebeneinander positionieren (Access 97)
Veröffentlicht am 04.05.2005
Sobald Sie die Online-Hilfe von Access aufrufen, verdeckt diese in den meisten Fällen das Hauptfenster von Access. Wenn Sie beide Fenster gleichzeitig im Blick haben möchten, müssen Sie die Größe und Position beider Fenster anpassen. Ganz praktisch wäre eine Funktion, die beide Fenster automatisch passend positioniert. Mit der API-Funktion „SetWindowPos“ ist dies kein Problem.
Die Funktion SetWindowPos ändert die Position des angegebenen Fensters:
Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long
Das Parameter hwnd stellt das Handle des zu positionierenden Fensters dar.
Das folgende Beispiel ordnet das Access Hauptfenster und die Hilfe-Fenster zu den Datenzugriffsobjekten (Fenstertitel DAO-Referenz) nebeneinander an.
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Public Const SWP_NOZORDER = &H4
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Public Const SW_NORMAL = 1
Public Function FensterPositionieren()
Dim SchirmBreite As Long, SchirmHöhe As Long
Dim lHilfeFenster As Long
' Breite des gesamten Bildschirms
SchirmBreite = GetSystemMetrics(SM_CXSCREEN)
' Höhe des gesamten Bildschirms
SchirmHöhe = GetSystemMetrics(SM_CYSCREEN)
' falls maximiert bzw. minimiert
ShowWindow Application.hWndAccessApp, SW_NORMAL
SetWindowPos Application.hWndAccessApp, 0, 0, 0, _
SchirmBreite / 2, SchirmHöhe, SWP_NOZORDER
' Handle des Hilfe-Fensters ermitteln
lHilfeFenster = FensterSuchen("DAO-Referenz")
If lHilfeFenster Then
SetWindowPos lHilfeFenster, 0, SchirmBreite / 2, _
0, SchirmBreite / 2, SchirmHöhe, SWP_NOZORDER
End If
End Function
Voraussetzung für das Funktionieren der Prozedur ist, dass Sie sich die Proezedur des vorhergehenden Beispiels bereits in Ihrem Modul befindet.
Damit die Funktion unabhängig von der Bildschirmauflösung arbeitet, ermitteln sie zuerst die Auflösung mit der Funktion GetSystemMetric. Anschließend wird das Access-Fenster links oben auf dem Bildschirm positioniert. Die Größe des Fensters wird auf die gesamte Bildschirmhöhe und die Hälfte der gesamten Bildschirmbreite (SchirmBreite / 2) gesetzt. Unmittelbar neben dem Access-Fenster fängt das Hilfe-Fenster in der Mitte des Bildschirms an und reicht bis zum rechten Rand des Bildschirms.