PDA

Vollständige Version anzeigen : Formfenster anpassen


Gery
23.01.2008, 08:10
Hallo Spezialisten!

Ich bin nun auf ein Problem gestoßen, wo mir keine Lösung einfällt und hoffe ihr könnt mir helfen.;)
Meine DB wird beim öffnen durch Aufruf AdjustApp 1024, 702die größe des DB Fenster erstellt.
Anschliessend wird das Formular an das DB Fenster angepasst.
Dim Result As Rect
'Ermitteln der Größe des Accessfensters (Maximaler Platz für ein Formular).
Result = GetMDIRect(True)
lngWidth = Result.Right - Result.Left
lngHeight = Result.Bottom - Result.Top
'Speicher die Werte in einer Variable um später zu prüfen ob sich die Werte verändert haben!
lngSaveWidth = lngWidth
lngSaveHeight = lngHeight
'Die Größe und Position auf die maximale Größe ändern.
DoCmd.MoveSize 1, 1, lngWidth, lngHeight

Soweit alles gut!:D
Jedoch kam von ein paar Benutzer das sie das ganze Formular nicht sehen können. Es wird recht und unten abgeschnitten.
Ich wusste zuerst nicht warum das so ist, als ich feststellte das die eine andere Einstellung im System hatten.:(
Einige dürften nicht besondere gute Augen haben und haben die Dpi verändert.
Die EInstellung ist zu finden unter: Rechtsklick am Desktop unter Eigenschaften/ Einstellungen (Grafikeinstellung) .
Weiter mit den Button Erweitert kommt man zu der EInstellung für DPI.
Sobald ein Benutzer nicht den Normalwert hat, sonder größer (120 DPI) einstellt hat, wird das beim öffnen der DB nicht berücksichtigt.:(
Hat von Euch jemand eine Lösung wie ich dies Berücksichtigen kann?
Würde mich über eine Lösung sehr freuen.:)
Gruß Gery

Gery
24.01.2008, 07:56
Hallo, keiner eine Idee?
Würde mich schon freuen, wenn ich eine Antwort bekäme ob es überhaupt möglich ist etwas zu unternehmen???:rolleyes:
Gruß Gery

Gery
29.01.2008, 10:26
Da keine Antwort bis jetzt kam, vermute ich das es nicht verständlich geschrieben ist. Oder kennt keiner die Einstellung der DPI?

Kann mir vielleicht jemand sagen, wie ich über Access nachfragen kann welche DPI Einstellung vorhanden ist?

Gruß Gerhard

TommyK
29.01.2008, 10:44
Hallo Gerhard,

probier mal den Code: Access-Fenster skalieren (http://www.tksoft-online.de/MS-Access-Codes/Codeschnipsel-System/Access-Fenster-skalieren.html)
Ob es mit DPI-Wert klappt müsstest Du mal testen. ;)

Gery
30.01.2008, 07:23
Danke TommyK,

Leider brachte es nichts. Vielleicht finde ich den Grund noch.;)

Gruß Gery

Anne Berg
17.03.2008, 14:51
Hallo,Kann mir vielleicht jemand sagen, wie ich über Access nachfragen kann welche DPI Einstellung vorhanden ist?ich mache das folgendermaßen:' ==================================
' Windows API declarations.
' ==================================
Private Declare Function GetDesktopWindow Lib "user32" () As Long

Private Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Const HORZRES = 8 ' Horizontal width in pixels
Private Const VERTRES = 10 ' Vertical width in pixels
Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X
Private Const LOGPIXELSY = 90 ' Logical pixels/inch in Y
Private Const TWIPSPERINCH = 1440
Private Const TWIPSPERPOINT = 20

Private Type POINTAPI
X As Long
y As Long
End Type

Private mptScreen As POINTAPI
Private mptScreenInPoints As POINTAPI

Public Function get_DPI()
' Ermitteln Schriftgröße (Schriftgrad)
Dim ptCurrentDPI As POINTAPI
Dim ptTwipsPerPixel As POINTAPI
Dim lngDC As Long, hwnd As Long

hwnd = GetDesktopWindow()
lngDC = GetDC(hwnd)

' If the call to GetDC didn't fail (and it had
' better not, or things are really busted),
' then get the info.
If lngDC <> 0 Then
' How many pixels per logical inch?
With ptCurrentDPI
.X = GetDeviceCaps(lngDC, LOGPIXELSX)
.y = GetDeviceCaps(lngDC, LOGPIXELSY)
get_DPI = .X
End With
Else
get_DPI = 0
End If
End Function

Gery
18.03.2008, 07:14
Vielen vielen Dank Anne :top:
Du hast mir sehr geholfen.:)
Gruß Gery