关于字体的疑问

“”当我们将一个字体选择到“设备描述表”中的时候,它会返回先前的字体。为此我们需要定义一个字体指针,用于保护先前的字体,“”,这句话的意思是不是意味着如果不保护冼前的字体,那先前的字体就会被丢掉,以后是我们设置的字体。事实证明如果不保护先前的字本,我们新设置的字体不起作用。

void CTest3View::OnDraw(CDC* pDC)
{
CTest3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

CFont  font;

font.CreatePointFont(200,"黑体"); //创建字体大小、类型

CFont *pFont;  //创建一个指针,用于存放字体

pFont = pDC->SelectObject(&font);//把要显示的字体放入指针,

pDC ->TextOut(0,0,"ok");//
pDC->SelectObject(&pFont);//重新将字体放入设备描述表中,以备下次使用
}


TEXTMETRIC它是一个数据结构:用来度量文本字体的各个属性。

TEXTMETRIC { // tm
    LONG tmHeight;                  //字符高度
    LONG tmAscent;                  //字符上部高度(基线以上)
    LONG tmDescent;                 //字符下部高度(基线以下)
    LONG tmInternalLeading;         //由tmHeight定义的字符高度的顶部空间数目
    LONG tmExternalLeading;         //加在两行之间的空间数目
    LONG tmAveCharWidth;            //平均字符宽度
    LONG tmMaxCharWidth;            //最宽字符的宽度
    LONG tmWeight;                  //字体的粗细轻重程度
    LONG tmOverhang;                //加入某些拼接字体上的附加高度
    LONG tmDigitizedAspectX;        //字体设计所针对的设备水平方向
    LONG tmDigitizedAspectY;        //字体设计所针对的设备垂直方向
    BCHAR tmFirstChar;              //为字体定义的第一个字符
    BCHAR tmLastChar;               //为字体定义的最后一个字符
    BCHAR tmDefaultChar;            //字体中所没有字符的替代字符
    BCHAR tmBreakChar;              //用于拆字的字符
    BYTE tmItalic;                  //字体为斜体时非零
    BYTE tmUnderlined;              //字体为下划线时非零
    BYTE tmStruckOut;               //字体被删去时非零
    BYTE tmPitchAndFamily;          //字体间距(低4位)和族(高4位)
    BYTE tmCharSet;                 //字体的字符集
} TEXTMETRIC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值