在我的WTL应用程序中,我试图更改静态标签的字体。但CreatePointFont返回NULL。为什么会这样?
CFont font;
font.CreatePointFont(120, _T("Segoe UI"));
text.Attach(GetDlgItem(IDC_MAINTEXT));
text.SetFont(font);
答案 0 :(得分:1)
CreatePointFont()
的nPointSize参数是十分之一点,也许你的12/10 = 1.2点的大小太小了。你可能打算传入120
。
在较轻松的说明中,如果您将其用于商业应用,则可能还需要访问ban comic sans网站。
答案 1 :(得分:1)
文档在失败条件下并不太冗长,但我猜你在机器上没有命名字体
检查它是否由EnumFontFamilies
函数列出(documentation引用):
Windows EnumFontFamilies函数可用于枚举所有当前可用的字体
答案 2 :(得分:1)
你确定CreatePointFont
正在返回NULL吗?
对于要设置的字体,它必须保留在内存中,而在您的代码段中,似乎变量font
在设置后会被直接销毁。
声明变量在text
对象的生命周期内不会被删除的地方,例如,如果您使用的是MFC对象,则为该类。