网站大量收购独家精品文档,联系QQ:2885784924

05 字体与文本.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

cbf96793 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档