Und weiter geht's zum Thema Schriftarten.
Eine unschöne Angelegenheit, wenn Ihr Programm auf einem PC eingesetzt wird, auf dem mit
Large Fonts gearbeitet wird.
Dann können Sie Ihr Programm noch so schön angeordnet haben, es wird unordentlich
aussehen, da die Schriften viel größer dargestellt werden, als dies unter der normalen
Small Fonts Einstellung der Fall ist.
Um sich davor schützen zu können, gibt es hier eine Möglichkeit zu Programmbeginn
abzufragen, ob Small oder Large Fonts aktiv sind.
Danach können sie entweder zwei unterschiedliche Masken aufbauen oder gleich den Dienst
am Kunden verweigern.
(Aber dann teilen Sie dem verdutzten Anwender wenigstens mit warum, es gibt schon soviel
Elend in der Softwarebranche)
Für ein eigenes Projekt benötigen Sie eine Form, ein Label Objekt und einen
Command Button.
Übernehmen Sie nun folgende Anweisungen.
Allgemein/Deklarationen
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal
nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc
As Long) As Long
Const LOGPIXELSX = 88
Const LOGPIXELSY = 90
Allgemein/IsScreenFontSmall - wird durch das Code einfügen angelegt
Private Function IsScreenFontSmall() As Boolean Dim
hWndDesk As Long
Dim hDCDesk As Long
Dim logPix As Long
Dim r As Long
'Handle zum Desktop
hWndDesk = GetDesktopWindow()
'Kontext für Desktop-Handle
hDCDesk = GetDC(hWndDesk)
'Horizontale Pixel
logPix = GetDeviceCaps(hDCDesk, LOGPIXELSX)
r = ReleaseDC(hWndDesk, hDCDesk)
'Ist der Rückgabecode von GETDEVICECAPS = 96 dann werden
SMALL FONTS eingesetzt
IsScreenFontSmall = logPix = 96
End Function
Command1_Click
If IsScreenFontSmall() Then
Label1 = "Das System benutzt ""SMALL FONTS"". "
Else
Label1 = "Das System benutzt ""LARGE FONTS""."
End If
Starten Sie Ihr Projekt mit F5 und klicken auf den Command Button.
Es wird Ihnen nun angezeigt, welche Fontart auf Ihrem System derzeit aktiv ist. |