Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt

Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt

ID:52603836

大小:360.51 KB

页数:58页

时间:2020-04-11

Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt_第1页
Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt_第2页
Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt_第3页
Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt_第4页
Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt_第5页
资源描述:

《Visual_C++面向对象与可视化程序设计_windows_API_text_font.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VisualC++面向对象与可视化程序设计--------WINDOWSAPI编程之textandfont第4讲文本与字体使用定义好的与设备无关的字体集,Windows就能维护它的设备无关性,提供“所见即所得”的好处,即屏幕所见与设备输出的文本是一样的Windows经常使用GDI进行文本输出。在一定意义上,任何内容都可以看成图形实体图形和文本并没有明显的界限文本操作先要获得文本句柄设置字体、字符大小、字符颜色等有关属性将这些属性选入设备环境5.1设置文本的设备环境字体逻辑字体定义的字符集是设备无关的,它可以精确标度,因此得到广泛应用描述所要显示的文本的大小、类型和外形

2、物理字体是为特殊设备设计的,因而是设备相关的Win系统提供了七种基本字体字体说明ANSI_FIXEDANSI标准的固定宽度的字体ANSI_VARANSI标准的可变宽度的字体DEFAULT_GUI当前GUI的缺省字体OEM_FIXED由标准原设备制造商(OEM)提供DEVICE_DEFAULT当前图形设备的字体SYSTEM_FIXEDWindows的标准固定宽度的字体SYSTEMWindows提供的可变宽度的字体常作为缺省字体Win用它作为系统界面字体在内定的DC中选择的字体称为系统字体,能够由GetStockObject的SYSTEM_FONT参数识别。这是固定的AN

3、SI字符集字体。在GetStockObject中指定SYSTEM_FIXED_FONT,可以获得等宽字体的句柄。在希望所有的字体都具有相同宽度时,这是很方便的。备用字体OEM_FIXED_FONT也称为终端机字体,是Windows在MS-DOS命令提示窗口中使用的字体,它包括与原始IBM-PC扩展字符集兼容的字符集。Windows在窗口标题列、菜单和对话框的文字中使用DEFULT_GUI_FONT。当将新字体选入DC时,必须使用GetTextMetrics计算字符的高度和平均宽度。如果选择了固定字体,那么一定要注意,字符的平均宽度只是个平均值,某些字符会比它宽或比它窄

4、。字体型态Windows支持两大类字体,即所谓的「GDI字体」和「设备字体」。GDI字体储存在硬盘的文件中,而设备字体是输出设备本来就有的。GDI字体有三种样式:点阵字体,笔划字体和TrueType字体。点阵字体的每个字符都以位图像素图案的形式储存,每种点阵字体都有特定的纵横比和字符大小。Windows通过简单地复制图素的行或列就可以由GDI点阵字体产生更大的字符。点阵字体的主要优点是显示性能(显示速度很快)和可读性(因为是手工设计的,所以尽可能清晰)。笔划字体是以「连结点」的方式定义的一系列线段,笔划字体可以连续地缩放,这意味着同样的字体可以用于具有任何分辨率的图形

5、输出设备,并且字体可以放大或缩小到任意尺寸。不过,它的性能不好,小字体的可读性也很糟,而大字体由于笔划是单根直线而显得很单薄。笔划字体有时也称为绘图机字体,因为它们特别适合于绘图机,但是不适合于别的场合。TrueType字体的单个字符是通过填充的直线和曲线的轮廓来定义的。Windows可以通过改变定义轮廓的坐标对TrueType字体进行缩放。当程序开始使用特定大小的TrueType字体时,Windows「点阵化」字体。这就是说Windows使用TrueType字体文件中包括的「提示」对每个字符的连结直线和曲线的坐标进行缩放。这些提示可以补偿误差,避免合成的字符变得很难

6、看。然后,每个字符的合成轮廓用于建立字符的位图,这些位图储存在内存以备将来使用。(1)定义字体句柄变量:HFONThF;//hF为字体的句柄(2)调函数GetStockObject获得系统字体句柄它返回的是系统的缺省字体hF=GetStockObject():(3)调用函数SelectObject将字体选入设备环境SelectObject(hdc,hF);选择系统字体的步骤逻辑字体逻辑字体是一个GDI对象,它的句柄储存在HFONT型态的变量中,逻辑字体是字体的描述。和逻辑画笔及逻辑画刷一样,它是抽象的对象,只有当应用程序调用SelectObject将它选入DC时,它才

7、成为真实的对象。逻辑字体的建立和选择:可以透过调用CreateFont或CreateFontIndirect来建立逻辑字体。CreateFontIndirect函数接受一个指向LOGFONT结构的指针,该结构有14个字段。CreateFont函数接受14个参数,它们与LOGFONT结构的14个字段形式相同。它们是仅有的两个建立逻辑字体的函数。因为很难记住14个字段,所以很少使用CreateFont。5.1.2创建自定义字体若需要定义系统以外的字体,可以调用函数GreateFont自行创建HFont=CreateFont(intifHeight,//字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。