Access- und Hilfefenster automatisch nebeneinander positionieren (Access 97)

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.

Dienstleistungen

Als starker Partner an Ihrer Seite unterstützen wir Sie in folgenden Breichen:

Access-Programmierung

Benötigen Sie Unterstützung bei der Programmierung von Access-Anwendungen? Wir bieten die gesamte Bandbreite von der Access-Programmierung auf Stundenbasis bis zur Durchführung eines Software-Projektes als Auftragsarbeit an. Kontaktieren Sie uns für ein kostenloses Erstgespräch.

Software-Beratung

Haben Sie ein Software-Projekt und Sie wissen nicht, ob Access die richtige Plattform ist? Wir haben über 20 Jahre Erfahrung beim Erstellen von Windows-, Web und mobilen Anwendungen. Kontaktieren Sie uns für eine kostenlose Erstberatung.