ACCESS - Verberg applicatie scherm en centreer forms

  • Onderwerp starter Onderwerp starter hausi
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
@snb
Dank je wel voor je idee maar ik was al in de code van @OctaFish gedoken en die bracht me de oplossing.
Het werkt nu zoals ik wil; bij het starten van de applicatie wordt het Access Application Windows geminimaliseerd en de formulieren worden, ongeacht welke schermresolutie wordt gebruikt, keurig gecentreerd weergegeven. Ik heb het als volgt gedaan:

Bij het openen van het hoofdformulier
Code:
Dim iBr As Long, iHo As Long, iL As Long, iT As Long
On Error Resume Next

'Verberg het Access-venster zodat alleen het formulier zichtbaar is
Call AdjstAccssWndw(-1000, -1000)

'Centreer het formulier
arrS = Split(SchermResolutie, "|")
iBr = CInt(arrS(LBound(arrS)))
iHo = CInt(arrS(UBound(arrS)))
iL = ((iBr * 15) - Me.InsideWidth) / 2
iT = ((iHo * 15) - Me.InsideHeight) / 2
iT = iT - 250 'Zet het formulier iets hoger in het scherm
DoCmd.MoveSize iL, iT

In een module
Code:
Option Compare Database

Public 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
Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Const SM_CXSCREEN = 0 'X Afmeting Scherm
Public Const SM_CYSCREEN = 1 'Y Afmeting Scherm
[HR][/HR]

Public Function AdjstAccssWndw(Optional ByVal MyX As Long = 200, Optional ByVal MyY As Long = 25)
    Dim errNum As Long, errDesc As String
    On Error GoTo SubEx
    Call MoveWindow(Application.hWndAccessApp, CLng(Round((GetSystemMetrics(SM_CXSCREEN) - MyX) / 2, 0)), CLng(Round((GetSystemMetrics(SM_CYSCREEN) - MyY) / 2, 0)), MyX, MyY, True)
ExitMe:
    Exit Function
SubEx:
    errNum = Err.Number: errDesc = Err.Description: Err.Clear
    Resume ExitMe
End Function
[HR][/HR]

Function SchermResolutie() As String
Dim x  As Long, y   As Long
Dim MyMessage As String
Dim MyResponse As VbMsgBoxResult
     
    x = GetSystemMetrics(SM_CXSCREEN)
    y = GetSystemMetrics(SM_CYSCREEN)
    SchermResolutie = x & "|" & y

End Function

Heel erg bedankt voor de ideeën, ik hoop dat iemand anders ook nog baat heeft bij de uitwerking van de oplossing.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan