VB-Homepage Tipp 179

Sind Small oder Large Fonts aktiv

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.


Tipp-Download

Quelle : VB Net FAQ

Zurück zur Übersichtsseite