- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual C++面向对象与可视化程序设计;第4讲 文本与字体;5.1 设置文本的设备环境;在内定的DC中选择的字体称为系统字体,能够由GetStockObject的SYSTEM_FONT参数识别。这是固定的ANSI字符集字体。在GetStockObject中指定SYSTEM_FIXED_FONT,可以获得等宽字体的句柄。在希望所有的字体都具有相同宽度时,这是很方便的。
备用字体OEM_FIXED_FONT也称为终端机字体,是Windows在MS-DOS命令提示窗口中使用的字体,它包括与原始IBM-PC扩展字符集兼容的字符集。Windows在窗口标题列、菜单和对话框的文字中使用DEFULT_GUI_FONT。
当将新??体选入DC时,必须使用GetTextMetrics计算字符的高度和平均宽度。如果选择了固定字体,那么一定要注意,字符的平均宽度只是个平均值,某些字符会比它宽或比它窄。
;字体型态;笔划字体是以「连结点」的方式定义的一系列线段,笔划字体可以连续地缩放,这意味着同样的字体可以用于具有任何分辨率的图形输出设备,并且字体可以放大或缩小到任意尺寸。不过,它的性能不好,小字体的可读性也很糟,而大字体由于笔划是单根直线而显得很单薄。笔划字体有时也称为绘图机字体,因为它们特别适合于绘图机,但是不适合于别的场合。
TrueType字体的单个字符是通过填充的直线和曲线的轮廓来定义的。Windows可以通过改变定义轮廓的坐标对TrueType字体进行缩放。当程序开始使用特定大小的TrueType字体时,Windows「点阵化」字体。这就是说Windows使用TrueType字体文件中包括的「提示」对每个字符的连结直线和曲线的坐标进行缩放。这些提示可以补偿误差,避免合成的字符变得很难看。然后,每个字符的合成轮廓用于建立字符的位图,这些位图储存在内存以备将来使用。
;(1) 定义字体句柄变量:
HFONT hF; //hF为字体的句柄;逻辑字体;5.1.2 创建自定义字体;ifHeight ,如果为正,就是设置单元高度;如果为负,就是设置字符高度。
ifEScapement使字符串能够以一定的角度书写(但每个字符的基准线仍与水平轴平行),而ifOrientation使单个字符倾斜。要注意单位是十分之一度,逆时针方向旋转。它很容易输入一个值使范例字符串消失!因此,请使用0到-600或3000到3600之间的值。
lfWeight这个字段能够指定粗体。WINGDI.H表头文件定义了可用于这个字段的一组值.可以对标准字使用0或400,对粗体使用700。
注意lfCharSet字段是唯一不用零表示默认值的字段。零值相当于ANSI_CHARSET,ANSI字符在美国和西欧使用。DEFAULT_CHARSET代码等于1,表示程序执行的机器上内定的字符集。
;ifFaceName这是关于字样的实际文字名称。这个字段是宽度为LF_FACESIZE(或32个字符)的字节数组。如果要得到TrueType的斜体或粗体字体,有两种方法。在lfFaceName字段中使用完整的字体名称(如Times New Roman Italic),或者可以使用基本名称(即Times New Roman),并设定lfItalic字段。
例: lf.lfFaceName = “黑体”
;逻辑字体结构;LOGFONT lf ;
lf.lfHeight = - (int) (fabs (pt.y) / 10.0 + 0.5) ;
lf.lfWidth = 0 ;
lf.lfEscapement = 0 ;
lf.lfOrientation = 0 ;
lf.lfWeight = iAttributes EZ_ATTR_BOLD ? 700:0 ;
lf.lfItalic = iAttributes EZ_ATTR_ITALIC ? 1 :0 ;
lf.lfUnderline = iAttributes EZ_ATTR_UNDERLINE ?1 :0 ;
lf.lfStrikeOut = iAttributes EZ_ATTR_STRIKEOUT ? 1 :0 ;
lf.lfCharSet = DEFAULT_CHARSET ;
lf.lfOutPrecision = 0 ;
lf.lfClipPrecision = 0 ;
lf.lfQuality = 0 ;
lf.lfPitchAndFamily = 0 ;
lstrcpy (lf.lfFaceName, szFaceName) ;
hFont = CreateFontIndirect (lf) ;;建立、选择和删除逻辑字体;5.1.3 设置字体和背景颜色;SetBkMod
文档评论(0)