要设置ANSI控件的字体,我创建一个HFONT
对象并将其(通过SendMessage()
)发送到控件。这就是我创建HFONT
对象的方式:
HFONT hFont = CreateFont(13, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Tahoma");
我认为除第9个参数外,Unicode控件的所有参数都相同。对于ANSI控件,此参数为ANSI_CHARSET
,但对于Unicode控件应该是什么?
答案 0 :(得分:0)
This link 讨论了Unicode以及如何使用它实现代码。最初的要求是#define UNICODE,以便通用Windows API将解析为UNICODE版本。
在您的示例中 ,您可以发表声明:
我认为除了第9个参数之外,Unicode控件的所有参数都是相同的
不正确 ,因为最后一个参数必须是Unicode字符串。
在您的代码示例中,执行以下操作:
#define UNICODE //place in project visible .h file
变化:
HFONT hFont = CreateFont(13, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Tahoma");
要:
HFONT hFont = CreateFont(13, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Tahoma");
^^^^^^^^^^^^ ^^^^^^^^
来自 MSDN 以下是函数CreateFont()
中使用的预定义列表(请注意DEFAULT_CHARSET):
此 网站可能会有所帮助: Programming with Unicode