我有一个MFC对话框程序,我在运行时创建了一些CStatic和CEdit控件。不知何故,这些控件中的文本未启用Cleartype(Windows中的Cleartype通过子像素定位和着色来平滑文本)。
但是,如果在设计时从Visual Studio工具箱中手动添加“编辑控件”或“静态文本”控件,则这些控件将启用Cleartype。
所以不知何故,工具箱中的控件与运行时创建的控件不同? 有谁知道如何为运行时创建的文本控件启用Cleartype? 这是在对话框的OnCreate函数中创建CStatic控件的代码片段:
CRect crc; crc.SetRect(100, 10, 300, 40);
m_static.Create(_T("Personeelsnummer?"), WS_CHILD | WS_VISIBLE, crc, this, IDC_STATIC1);
此CStatic控件中的文本未启用Cleartype。设置不同的字体无效。
我迷路了。
答案 0 :(得分:3)
我找到了自己问题的答案。在运行时创建的控件上缺少cleartype与字体相关。当在运行时创建控件时,使用的默认字体不受cleartype的影响,应该用不同的字体替换。
在我的问题中,我注意到我曾尝试设置不同的字体,但是我在本地函数中创建了一个字体。退出设置字体的函数后,字体被破坏,所以我没有看到任何区别。我现在有一个字体的成员变量,仅当父CWnd被销毁时才被销毁。