MFC创建字体示例

///   利用CFont::CreateFont(...)函数实现竖写汉字 
CFont   myFont;           //创建字体对象 

//创建逻辑字体 
myFont.CreateFont( 
                            56,                 //字体高度(旋转后的字体宽度)=56   
                            20,                 //字体宽度(旋转后的字体高度)=20 
                            2700,             //字体显示角度=270° 
                            0,                                     //nOrientation=0 
                            10,                                   //字体磅数=10 
                            FALSE,                             //非斜体 
                            FALSE,                             //无下划线 
                            FALSE,             //无删除线 
                            DEFAULT_CHARSET,         //使用缺省字符集 
                            OUT_DEFAULT_PRECIS,   //缺省输出精度 
                            CLIP_DEFAULT_PRECIS,//缺省裁减精度   
                            DEFAULT_QUALITY,         //nQuality=缺省值 
                            DEFAULT_PITCH,             //nPitchAndFamily=缺省值 
                            "@system ");                   //字体名=@system 
CFont   *pOldFont=dc.SelectObject(&myFont);//选入设备描述表 
CRect   rtClient; 
GetClientRect(rtClient);       //获取客户区尺寸、位置信息 
//在客户区适当位置输出文字 
dc.TextOut(rtClient.Width()/2+30,rtClient.Height()/8, 
                              "无边落木萧萧下 "); 
dc.SelectObject(pOldFont);   //将myFont从设备环境中分离 
myFont.DeleteObject();           //删除myFont对象 

///   利用LOGFONT结构实现竖写汉字// 
LOGFONT   lf;                                           //定义字体结构 
lf.lfWeight=10;                                   //字体磅数=10 
lf.lfHeight=56;           //字体高度(旋转后的字体宽度)=56   
lf.lfWidth=20;                                     //字体宽度(旋转后的字体高度)=20 
lf.lfUnderline=FALSE;                       //无下划线 
lf.lfStrikeOut=FALSE;                       //无删除线 
lf.lfItalic=FALSE;                             //非斜体 
lf.lfEscapement=2700;                       //字体显示角度=270° 
lf.lfCharSet=DEFAULT_CHARSET;       //使用缺省字符集 
                strcpy(lf.lfFaceName, "@system ");   //字体名=@system 
        
CFont   myLogFont;                                       //定义字体对象 
myLogFont.CreateFontIndirect(&lf);   //创建逻辑字体 
pOldFont=dc.SelectObject(&myLogFont);//选入设备描述表 
//在客户区适当位置输出文字 
dc.TextOut(rtClient.Width()/2-30,rtClient.Height()/8, 
                                  "不尽长江滚滚来 "); 
dc.SelectObject(pOldFont);   //将myFont从设备环境中分离 

myLogFont.DeleteObject();     //删除myLogFont对象 

CFont的CreatePointFont函数,可以实现快速创建字体,font.CreatePointFont(160, "宋体");

参考:https://blog.csdn.net/liverpool_deng_lee/article/details/72149592

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值