如何根据系统设置/区域确定LOGFONT的lfCharSet默认值?
LOGFONT::lfCharSet默认值与EnumFontFamiliesEx枚举字体说明
LOGFONT的lfCharSet成员默认值可由系统区域设置确定:系统区域中“非Unicode程序的语言”设置会对应默认字符集,比如中文系统通常默认是GB2312_CHARSET/GBK_CHARSET,英文系统默认是ANSI_CHARSET。初始化LOGFONT时若不手动赋值,系统会自动根据当前区域填充对应字符集值。关于
EnumFontFamiliesEx枚举字体:- 若使用系统默认的
lfCharSet值,函数会枚举与当前系统区域字符集匹配的字体; - 若需枚举所有字符集的字体,可将
lfCharSet设为DEFAULT_CHARSET,但此时可能返回重复的字体族(同一字体族可能支持多字符集); - 要精确枚举特定字符集的字体,直接给
lfCharSet赋值对应常量即可,比如UNICODE_CHARSET、SHIFTJIS_CHARSET。
- 若使用系统默认的
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

