- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05 字体与文本
第五章 文本和字体
文本输出是应用程序经常需要实现的功能。许多程序的运行结果都必须以文本输出形式显示;文字处理程序更是主要以文本作为处理的对象。所以,程序员掌握文本输出的基本原理和技术具有重要的意义。文本输出需要解决的问题是如何修改显示文本的字体、颜色和大小,以及如何协调在不同设备上显示文本的差异。第一节 文本输出的基本知识1.文本的设备描述表属性设备描述表( Device Context)是一个决定输出的位置和外形的属性集合。在用户编制的应用程序中可以通过设备描述表句柄间接地读取设备描述表。当程序为设备描述表申请一个句柄时,系统就自动生成了一个设备描述表,生成的设备描述表包含了所有属性的默认值。其中与文本有关的默认值如表所示。 属性意义 默认值 背景色 White 字体 SYSTEM_FONT 字符间隔 0 文本颜色 Black 背景模式 OPAQUE 背景色定义了填充字符,以及填充字符间区域的颜色。背景模式有两种取值:OPAQUE 和 TRANSPARENT。默认值为 OPAQUE表示背景颜色有效;如果设定为TRANSPARENT,则表示关闭背景色。字符间距和文本颜色分别表示两个字符间的间隔和字体的颜色。 2.字体字体描述了所显示字符的大小、外形和种类,也就是说字体包含了字符集中每个字符属性的抽象描述。字体分为两种基本类型:物理字体和逻辑字体。GDI(图形设备接口)常用的字体如表所示。常用GDI字体族举例
字体 字体常量 Dontcare FF_DONTCARE Decorative FF_DECORATIVE Modem FF_MODEM Roman FF_ROMAN Script FF_SCRIPT Switss FF_SWITSS 3.文本度量和文本对齐 文本度量是指文本的所有尺寸信息。可以通过GetTextMetrics函数获得这些信息,并将这些信息保存在一个TEXTMETRIC结构体变量中。文本对齐是指按照指定的坐标和基准线来排列文本。可以调用SetTextAlign函数来设置当前文本的对齐属性。SetTextAlign函数的原型定义如下:UINT SetTextAlign( HDC hdc, // 设备描述表句柄 UINT fMode // 对齐属性常量)其中对齐属性常量的取值如表所示。
取值 意义 TA_BASELINE 参考点在基线上 TA_BOTTOM 参考点在矩形界的底部 TA_TOP 参考点在矩形界的顶部 TA_CENTER 参考点在边界矩形的中部 TA_LEFT 参考点在矩形边界的最左边 TA_RIGHT 参考点在矩形边界的最右边
字体输出演示程序#includeWindows.h//全局变量HINSTANCE hInst; // 当前句柄TCHAR szTitle[]=“字体输出实例”; // 标题栏文本TCHAR szWindowClass[50]=fonttest; // 窗口类名//函数原型ATOM MyRegisterClass(HINSTANCE hInstance);BOOL InitInstance(HINSTANCE, int);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //作用:入口函数int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow){ MSG msg; MyRegisterClass(hInstance); if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } while (GetMessage(msg, NULL, 0, 0)) { TranslateMessage(msg); DispatchMessage(msg); } return msg.wParam;}//函数:MyRegisterClass //作用:注册窗口类ATOM MyRegisterClass (HINSTANCE hInstance){ WNDCLASSEX wndclass; wndclass.cbSize = sizeof(WNDCLASSEX); wndclass.style= CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc= (WNDPROC)WndProc; wndclass.cbClsE
您可能关注的文档
- 羽毛球拍.doc
- 耐热150℃低烟无卤阻燃轨道交通车辆用电缆.doc
- 耗材真假辨别0.doc
- 肌肉与骨骼历届考题final.doc
- 肌肉骨骼康复学.doc
- 考试情况分析及反馈表 -.doc
- 肌肉的分类.doc
- 能量之源-光合作用.doc
- 腌柚子皮.doc
- 自制柚子酱、柚子茶的方法.doc
- 驾驶员安全教育领导发言稿.docx
- 安全生产动员会发言稿.docx
- 《传播文明》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 《点亮文明》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 高中数学说课比赛 公开课 概率与统计中的基本思想方法1.docx
- 《翰墨之情》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 《方寸之间》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 《好朋友,动起来》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 《情感的记录》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
- 《身边的陶》教学课件-2024-2025学年苏少版(2024)初中美术七年级上册.pptx
文档评论(0)