Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Apr 23, 1999

Grab System Fonts Easily

At times, you might want to retrieve the current system font settings, such as the font being used for window title bars, or the menu or message box font. You could delve into the Registry, but why go to the trouble if the SystemParametersInfo API does it for you? Here's how:
 
Private Declare Function SystemParametersInfo Lib "user32" _
	Alias "SystemParametersInfoA" (ByVal uAction As Long, _
	ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni _
	As Long) As Long

	Private Type LOGFONT
		lfHeight As Long
		lfWidth As Long
		lfEscapement As Long
		lfOrientation As Long
		lfWeight As Long
		lfItalic As Byte
		lfUnderline As Byte
		lfStrikeOut As Byte
		lfCharSet As Byte
		lfOutPrecision As Byte
		lfClipPrecision As Byte
		lfQuality As Byte
		lfPitchAndFamily As Byte
		lfFaceName As String * 32
	End Type

	Private Type NONCLIENTMETRICS
		cbSize As Long
		iBorderWidth As Long
		iScrollWidth As Long
		iScrollHeight As Long
		iCaptionWidth As Long
		iCaptionHeight As Long
		lfCaptionFont As LOGFONT
		iSMCaptionWidth As Long
		iSMCaptionHeight As Long
		lfSMCaptionFont As LOGFONT
		iMenuWidth As Long
		iMenuHeight As Long
		lfMenuFont As LOGFONT
		lfStatusFont As LOGFONT
	lfMessageFont As LOGFONT
	End Type

	Private Const SPI_GETNONCLIENTMETRICS = 41

	Public Function GetCaptionFont() As String
		Dim NCM As NONCLIENTMETRICS
		NCM.cbSize = Len(NCM)
		Call SystemParametersInfo(SPI_GETNONCLIENTMETRICS, _
			0, NCM, 0)
		If InStr(NCM.lfCaptionFont.lfFaceName, Chr$(0)) _
			> 0 Then
			GetCaptionFont = _
				Left$(NCM.lfCaptionFont.lfFaceName, _
				InStr(NCM.lfCaptionFont.lfFaceName, Chr$(0)) _
				- 1)
		Else
			GetCaptionFont = NCM.lfCaptionFont.lfFaceName
		End If
	End Function
Keep in mind this function-GetCaptionFont-returns only the name of the font. However, all the other font information is there in the LOGFONT structures as well.
Ben Baird
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date