[MFC] MFC 字体设置

CFont

CFont类为CGdiObject的派生类。

常用的构造函数为CreateFont,CreatePointFont。通常采用这两个函数中的一个作为字体的初始画函数。

CreatePointFont

函数原型

BOOL CreatePointFont(
   int nPointSize,             //以0.1(像素/磅数)为单位
   LPCTSTR lpszFaceName,       //字体的名字字符串,且最长不超过30个字符串
   CDC* pDC = NULL             //用于将nPointSize转换为逻辑单元,如果是空,则屏幕上下文将用于此转换
);

示例:

CClientDC dc(this);                                //得到窗口句柄

CFont font;
font.CreatePointFont(120, _T("Arial"), &dc);       //初始化font为大小为12磅的Arial字体           

CFont* def_font = dc.SelectObject(&font);          //将字体选进设备上下文中(device context)
dc.TextOut(5, 5, _T("Hello"), 5);                  //在屏幕上写字
dc.SelectObject(def_font);                         //将默认的字体选进设备上下文中,替换我们使用的字体

font.DeleteObject();

CreateFont

函数原型

BOOL CreateFont(
   int nHeight,           //字体所需高度。不为0则取绝对值高度,若为0则取缺省值
   int nWidth,            //字体的平均宽度。
   int nEscapement,       //每行字体以行首左上角为圆心的行基线偏移X轴的角度(度量单位0.1度,逆时针为正方向)
   int nOrientation,      //每个字符的基线和设备X轴之间的角度
   int nWeight,           //字体重量(粗度)值为(0-1000)如400表示标准体,700表示黑(粗)体,其中大部分字体都有的默认值为FWP_NORMAL,FW_REGULAR,FW_BLOD
   BYTE bItalic,          //是否为斜体
   BYTE bUnderline,       //是否有下划线
   BYTE cStrikeOut,       //是否有删除线
   BYTE nCharSet,         //指定字符集
   BYTE nOutPrecision,    //指定输出精度
   BYTE nClipPrecision,   //指定剪裁精度
   BYTE nQuality,         //指定输出质量
   BYTE nPitchAndFamily,  //指定字体间距和字体族,低端二位指定字体的字符间距
   LPCTSTR lpszFacename   //字体名称
);
示例:

CFont font;
VERIFY(font.CreateFont(
   12,                        // nHeight
   0,                         // nWidth
   0,                         // nEscapement
   0,                         // nOrientation
   FW_NORMAL,                 // nWeight
   FALSE,                     // bItalic
   FALSE,                     // bUnderline
   0,                         // cStrikeOut
   ANSI_CHARSET,              // nCharSet
   OUT_DEFAULT_PRECIS,        // nOutPrecision
   CLIP_DEFAULT_PRECIS,       // nClipPrecision
   DEFAULT_QUALITY,           // nQuality
   DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
   _T("Arial")));             // lpszFacename
.
CClientDC dc(this);  
CFont* def_font = dc.SelectObject(&font);
dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

<pre name="code" class="cpp">font.DeleteObject(); 

 
 

注意

1.当字体不用之后删除即可。





  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值