我正在使用纯C和WinAPI编写Win32应用程序,不允许使用MFC或C ++。为了让控件使用适当的样式绘制,我使用一个清单,如相应的MSDN文章所述。一切都很好,当我更改系统样式时,我的应用程序也会更改样式。但是使用的字体很丑。如何强制应用程序使用标准系统字体?
我正在使用纯C和WinAPI编写Win32应用程序,不允许使用MFC或C ++。为了让控件使用适当的样式绘制,我使用一个清单,如相应的MSDN文章所述。一切都很好,当我更改系统样式时,我的应用程序也会更改样式。但是使用的字体很丑。如何强制应用程序使用标准系统字体?
typedef struct tagNONCLIENTMETRICS {
UINT cbSize;
int iBorderWidth;
int iScrollWidth;
int iScrollHeight;
int iCaptionWidth;
int iCaptionHeight;
LOGFONT lfCaptionFont;
int iSmCaptionWidth;
int iSmCaptionHeight;
LOGFONT lfSmCaptionFont;
int iMenuWidth;
int iMenuHeight;
LOGFONT lfMenuFont;
LOGFONT lfStatusFont;
LOGFONT lfMessageFont;
#if (WINVER >= 0x0600)
int iPaddedBorderWidth;
#endif
} NONCLIENTMETRICS, *PNONCLIENTMETRICS, *LPNONCLIENTMETRICS;
LOGFONT
参数,请参见更改Win32 Windows项目中的默认窗口字体示例末尾,但使用不是来自GetStockObject(DEFAULT_GUI_FONT)
的LOGFONT
,而是由SystemParametersInfo
返回的带有SPI_GETNONCLIENTMETRICS
参数的LOGFONT
。