VS2010MFC编程入门之四十七(字体和文本输出:CFont字体类)
理解了MFC异常处理,这里的主要内容是字体CFont类。
字体简介
GDI(Graphics Device Intece),图形设备接口,是Windows提供的一些函数和结构,用于在显示器和打印机上显示图形。我们在MFC开发中经常会使用GDI来输出文本或图形图像(当然现在也有了GDI+,本教程主要讲解GDI)。文本实际上就是一种特殊的图形,它只不过是根据事先指定的“字体”绘制出来的图形。
字体通常用来为字符集中每一个字符,如字母、数字、标点符号等,指定其形状等外表特征。窗口创建后,如果没有专门指定,一般会采用系统字体作为默认字体。cfont类我们可以使用API函数GetStockObject(SYSTEM_FONT)获得系统字体的句柄。cfont类
CFont类
CFont类封装了一个Windows图形设备接口(GDI)字体,并为操作字体提供了成员函数。
为了使用CFont对象,首先构造一个CFont对象,再通过调用CreateFont、
CreateFontIndirect、CreatePointFont或CreatePointFontIndirect将一个Windows字体与此CFont对象关联,然后使用此CFont对象的成员函数就可以操作字体了。
一般使用CreatePointFont或CreatePointFontIndirect比使用CreateFont或
CreateFontIndirect要更简便,因为前两者会自动的将字体高度的单位由点转换为逻辑单位。
注:“点”是传统计量字大小的单位,是从英文Point来的,一般用小写p表示,俗称“磅”。其换算关系为:1p=0.35146mm≈0.35mm,1英寸=72p。
先简单解释下下面用到的几个概念:
设备上下文是包含某个设备(如显示器、打印机)的绘制属性信息的Windows数据结构,有了它就可以在Windows中进行与设备无关的绘图,而不用考虑此设备是显示器还是打印机等。CDC类就是设备上下文类。
在绘图时还经常会提到逻辑和物理,例如逻辑单位、物理单位,通俗点说,逻辑的就是与具体设备无关的,甚至我们可以自定义,物理的就是由具体设备决定的了。
CFont类为字体的操作提供了几个成员函数,下面是对其各个成员函数的详细介绍。
1、CFont( );
构造一个CFont对象。此对象在使用之前应该先使用CreateFont、CreateFontIndirect、CreatePointFont或CreatePointFontIndirect初始化。
2、
BOOL CreateFont(
intnHeight,
intnWidth,
intnEscapement,
intnOrientation,
intnWeight,
BYTE bItalic,
BYTE bUnderline,
BYTE cStrikeOut,
BYTE nCharSet,
BYTE nOutPrecision,
BYTE nClipPrecision,
BYTE nQuality,
BYTE nPitchAndFamily,
LPCTSTR lpszFacename
);
通过指定的一些特征初始化CFont对象。下面分别介绍每个参数:
nHeight:指定字体高度(逻辑单位)。有三种取值:>0,字体映射器将高度值转换为设备单位,并与可用字体的字符元高度进行匹配;=0,字体映射器使用默认的高度值;<0,字体映射器将高度值转换为设备单位,用其绝对值与可用字体的字符高度进行匹配。nHeight转换后的绝对值不应超过16384个设备单位。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32944-1.html
好像在告诉我虽然年纪大了也要保持孩子的纯真
记住
中国军舰发动机已国产化