Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261693
  • 博文数量: 71
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-16 13:07
个人简介

我喜欢蓝天,也喜欢雨天。

文章分类

全部博文(71)

文章存档

2014年(14)

2013年(57)

分类: Windows平台

2013-08-27 16:13:16

TrueType

基本概念:


1.系统字体:在默认的设备描述表中选定的字体为系统字体。

2.GDI字体:存储在硬盘的文件中,分三种类型:点阵字体(位图字体),笔划字体(绘图仪字体),TrueType字体;设备字体是输出设备所固有的。

3.逻辑英寸和实际英寸

逻辑英寸:96或120像素在屏幕上占有的度量距离,逻辑英寸比实际英寸大一些,逻辑英寸有效的对屏幕进行了放大。

4.逻辑字体:是一个GDI对象,句柄存储在HFONT类型变量中,逻辑字体是字体的描述。只有当应用程序调用SelectObject将它选入设备描述表时,它才成为真实的对象。

 

字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。Unicode字符集为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

 

dpi是指每英寸的像素。

 

 

文本输出函数:

TextOut(hdc, xStart, yStart, pString, iCount);仅可输出单行文字

TabbedTextOut(hdc, xStart, yStart, pString, iCount,  iNumTabs, pTabStops, xTabOrigin);该函数将一个字符串写到指定的位置,并按制表位位置数组里的值展开制表符。正文以当前选择的字体、背景色和字体写入。

ExtTextOut();

DrawText();DrawText可用于多行输出,计算即将输出的位置等,考虑Tab字符等

DraeTextEx();

 

SetTextColor(hdc, rgbColor);在默认的设备描述表下,文本颜色是黑色,可用此函数更改.

GetTextColor();获取当前文本的颜色.

SetBkMode(hdc, iMode);更改背景模式。

SetBkColor(hdc, rgbColor);更改背景颜色。

 

使用当前系统颜色设置文本色和背景色.

SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT));

SetBkColor(hdc, GetSysColor(COLOR_WINDOW);

 

SetTextCharacterExtra(hdc, iExtra);设置字符间距,用此函数插入空间. iExtra是逻辑单位,windows将其转换为最接近的像素.

GetTextCharacterExtra();回去当前的字符间距。

 

hFont = GetStockObject(iFont);获取某种备用字体句柄。

SelectObject(hdc, hFont));将该字体选入设备描述表。

SelectObject(hdc, GetStockObject(iFont));一步完成。

 

GetTextMetrics();计算字符的高度和平均宽度。

 

创建逻辑字体:

CreateFont();少用

CreateFontIndirect();

 

GetTextFace(hdc,sizeof(szFaceName)/sizeof(TCHAR),szFaceName);使程序能够确定当前选入设备描述表的字体名.

GetTextMetrics(hdc, &textmetric);得到详细的字体信息。

 

LONGFONT 用于定义逻辑字体。

TEXTMETRIC 用于获取当前选入设备描述表中的字体信息。

 

EnumFontFamilies(hdc, szFaceName, EnumProc, pData);列举TrueType字体的函数。


EnumFontFamiliesEx(hdc, &logfont, EnumProc, pData,dwFlags);

 

ChooseFomt();得到指向CHOOSEFONT结构的指针以此作为它的唯一参数,并显示列出所有字体的对话框。

 

GetTextExtentPoint32(hdc,pString, iCount, &size);根据设备描述表中选入的当前字体得出字符串的宽度和高度。

 

阅读(3216) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~