欢迎来到天天文库
浏览记录
ID:58681878
大小:139.50 KB
页数:45页
时间:2020-10-05
《第五章 文本与字体ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象与可视化程序设计--VisualC++编程主讲教师:唐龙教授(计算机科学与技术系)黄维通博士(计算机与信息管理中心)清华大学2001年10月1第五章文本与字体2内容提要设置文本的设备环境文本的输出过程文本操作实例3§5.1.设置文本的设备环境41.有关的基本概念Windows中所显示的任何内容,在一定意义上,都可看成借助GDI绘制图形实体。文本输出使用预定义好的特殊图形元素——字体集。字体描述了所要显示的文本文字的大小、类型和外形。Windows系统提供了七种基本字体,并允许用户创建新的字体。51.有关的基本概念(续)文本操作的要点:获得文本句柄;设置字体、字符大小、字符颜色等属性
2、;将这些属性选入设备环境;62.Windows提供的七种基本字体ANSI_FIXEDANSI标准的固定宽度的字体ANSI_VARANSI标准的可变宽度的字体DEFAULT_GUI当前GUI的缺省字体OEM_FIXED由标准原设备制造商(OEM)提供DEVICE_DEFAULT当前图形设备的字体SYSTEM_FIXEDWindows的标准固定宽度的字体SYSTEMWindows提供的可变宽度的字体常作为缺省字体Win用它作为系统界面字体73.选择系统字体的步骤(1)定义字体句柄变量:HFONThF;//hF为字体的句柄(2)调函数GetStockObject获得系统字体句柄,它返回的是系统的
3、缺省字体hF=GetStockObject();(3)调函数SelectObject将字体选入设备环境SelectObject(hdc,hF);84.创建自定义字体调用函数CreateFont可创建自定义字体。HFont=CreateFont(intnHeight,//字体高度,0采用系统缺省值,使用逻辑单位intnWidth,//字体宽度,取0则取最佳高宽比值intnEscapement,//每行文字相对于页底的角度,单位为0.1度intnOrienation,//每个文字相对于页底的角度,单位为0.1度nWeight,//字体粗细度,取值范围为0~1000DWORDDwltalic,/
4、/若字体倾斜,则取非零DWORDdwUnderline,//若带下划线,则取非零DWORDdwStrikeout,//若带删除线,则取非零9DWORDdwCharset,//字体所属字符集DWORDdwOutputPrecision,//输出精度,缺省值OUT_DEFAULT_PRECISDWORDdwClipPrecision,//剪裁精度,缺省值CLIP_DEFAULT_PRECISDWORDdwQuality,//输出质量,缺省值DEFAULT_QUALITYDWORDdwPitchAndFamily,//字体的斜度及字体的系列DWORDlpszFacename//字体名);可选的系
5、统字符集:ANSI_CHARSETOEM_CHARSETSYMBOL_CHARSETDEFAULT_CHARSETSHIFTJIS_CHARSET一般取缺省值DEFAULT_PITCH4.创建自定义字体(续)10crColor为设置的颜色设置字体和背景颜色设置字体颜色函数:SetTextColor(hdc,crColor);设置背景颜色函数:SetBkColor(hdc,crColor);11§5.2.文本的输出过程121.文本的输出步骤获取字体信息格式化文本确定后续文本坐标确定换行时文本坐标调用函数输出文本132.获取字体信息输出文本之前,必须获取字体的信息,如字符高度等,以确定输出格式
6、和下一行字符的位置。调用GetTextMetrics()获取字体的信息GetTextMetrics(hdc,&tm);tm为TEXTMETRICS结构存放字体的信息14系统定义的TEXTMETRICS结构的定义的结构如下:typedefstructtagTEXTMETRIC{//tmLONGtmHeight;//字符高度LONGtmAscent;//字符基线以上高度LONGtmDescent;//字符基线以下高度LONGtmInternalLeading;//tmHeight制订的字符高度顶部的控件LONGtmExternalLeading;//行间的间隔LONGtmAveCharWidt
7、h;//平均字符宽度LONGtmMaxCharWidth;//最大字符宽度LONGtmWeight;//字符的粗细度LONGtmOverhang;//合成字体间附加的宽度LONGtmDigitizedAspectX;//为输出设备设计的X轴尺寸LONGtmDigitizedAspectY;//为输出设备设计的Y轴尺寸BCHARtmFirstChar;//字体中第一个字符值BCHARtmLastChar;//字体中最后一个
此文档下载收益归作者所有