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.

Unsere 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.

JETZT KONTAKTIEREN

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.

JETZT KONTAKTIEREN