Finding out the size of the font being used by the system
Do you need to know whether the system is using large fonts? Use this simple procedure to return a Boolean value. Add these declarations:
Declarations
Public Declare Function GetDesktopWindow Lib _ "user32" () As Long Public Declare Function GetDC Lib "user32" (ByVal _ hwnd As Long) As Long Public Declare Function GetDeviceCaps Lib "gdi32" _ (ByVal hdc As Long, ByVal nIndex As Long) As Long Public Declare Function ReleaseDC Lib "user32" _ (ByVal hwnd As Long, ByVal hdc As Long) As Long Public Const LOGPIXELSX = 88
Add the following code to a module or form
Public Function IsScreenFontSmall() As Boolean Dim hWndDesk As Long Dim hDCDesk As Long Dim logPix As Long Dim r As Long hWndDesk = GetDesktopWindow() hDCDesk = GetDC(hWndDesk) logPix = GetDeviceCaps(hDCDesk, LOGPIXELSX) r = ReleaseDC(hWndDesk, hDCDesk) IsScreenFontSmall = (logPix = 96 ) End Function
The method of
this is easy:
1) Get the HWnd for the desktop
2) Find out the logical pixels in the height of the font
3) If this is equal to 96, then small fonts are used, otherwise,
it is something else.