Author: Jonas Bilinkevicius
How do you get hold of the font for the active title bar (after it's been set in
the Appearence tab in the display properties)? What API call is needed?
Answer:
1 function GetCaptionFont(afont: TFont);
2 var3 ncMetrics: TNonClientMetrics;
4 begin5 assert(assigned(afont));
6 ncMetrics.cbSize := sizeof(TNonClientMetrics);
7 SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(TNonClientMetrics),
8 @ncMetrics,
9 0);
10 afont.Handle := CreateFontIndirect(ncMetrics.lfCaptionFont);
11 end;
The TNonClientMetrics structure also contains information on other fonts used in
the non-client area information:
lfCaptionFont: Font used in regular captions
lfSmCaptionFont: Font used in small captions
lfMenuFont: Font used in menus
lfStatusFont: Font used in status bars
lfMessageFont: Font used in message boxes