CEdit字体的设置问题

qq_20668223 2015-01-30 02:11:10
编译器是VS2013
我在给CEdit控件设置字体大小时候出现的问题,
使用以下方法,结果还是有问题。
方法一:
CFont m_Font;
m_Font.CreateFont(
-31, 31, 2, 0, FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_SWISS, _T("黑体"));
m_edit.SetFont(&m_Font, TRUE);
m_edit.SetWindowText(TEXT("TEXT"));
结果:行高改变了,字体高度未变。

方法二:
CFont m_Font;
m_Font.CreatePointFont(31, _T("黑体"));
m_edit.SetFont(&m_Font, TRUE);
m_edit.SetWindowText(TEXT("TEXT"));
结果:行高未改变,字体高度变化,导致字体大部分看不到


方法三:
CFont myFont;
LOGFONT lf; //定义字体结构
lf.lfWeight = 16; //字体磅数=16
lf.lfHeight = 56; //字体高度56
lf.lfWidth = 20; //字体宽度20
lf.lfUnderline = TRUE; //无下划线
lf.lfStrikeOut = FALSE; //无删除线
lf.lfItalic = FALSE; //非斜体
lf.lfEscapement = 0;
lf.lfCharSet = DEFAULT_CHARSET; //使用缺省字符集
wcscpy_s(lf.lfFaceName, _T("黑体")); //字体名=@system
myFont.CreateFontIndirect(&lf); //创建逻辑字体
m_edit.SetFont(&myFont, TRUE);
m_edit.SetWindowText(_T("TEXT"));

结果:同方法一

谢谢解答或查看。
...全文
165 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20668223 2015-02-01
  • 打赏
  • 举报
回复
引用 3 楼 liuxychad 的回复:
CFont myFont得是全局变量
qq_20668223 2015-02-01
  • 打赏
  • 举报
回复
引用 5 楼 sj19890401 的回复:
CFont m_Font; 放到类的声明中作为类的成员变量
qq_20668223 2015-02-01
  • 打赏
  • 举报
回复
引用 4 楼 lx624909677 的回复:
m_Font做成类的成员变量试试
lx624909677 2015-01-30
  • 打赏
  • 举报
回复
m_Font做成类的成员变量试试
liuxychad 2015-01-30
  • 打赏
  • 举报
回复
CFont myFont得是全局变量
zgl7903 2015-01-30
  • 打赏
  • 举报
回复
注意 m_Font 的作用域 用静态变量或类变量或全局变量 static CFont m_Font; m_Font.DeleteObject(); ……
大树学长 2015-01-30
  • 打赏
  • 举报
回复
CreateFont函数中各变量的意思明白不 m_Font.CreateFont( 50, 0, 0, 0, 1000, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, VARIABLE_PITCH|FF_SWISS, _T("黑体")); 试试
wshlwz 2015-01-30
  • 打赏
  • 举报
回复
是不是定义的字体离开他的作用域就被释放资源了
一朵格桑花 2015-01-30
  • 打赏
  • 举报
回复
CFont m_Font; 放到类的声明中作为类的成员变量

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧