说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制-Delphi资料

首先为了达到这个功能,可以采用Windows的逻辑字体(LogFont)

可以使用 CreateFont 或 CreateFontIndirect 这两个Windows API

函数来定义任何想要的字体,由于 CreateFont 所需的参数甚多通常

我们使用 CreateFontIndirect 来建立所需的逻辑字体,这个API函数

在Delphi中的声明为

function CreateFontIndirect(const p1: TLogFont): HFONT; stdcall;

其中只有一个参数 p1: TLogfont

所有有关字体的参数完全通过这个

TLogfont结构来传送,Windows将根据结构中的内容创建出相应的逻辑

字体,在Delphi的Windows.pas中TLogFont是这样定义的

TLogFontA = packed record

lfHeight: Longint;

lfWidth: Longint;

lfEscapement: Longint;

lfOrientation: Longint;

lfWeight: Longint;

lfItalic: Byte;

lfUnderline: Byte;

lfStrikeOut: Byte;

lfCharSet: Byte;

lfOutPrecision: Byte;

lfClipPrecision: Byte;

lfQuality: Byte;

lfPitchAndFamily: Byte;

lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar;

end;

TLogFontW = packed record

lfHeight: Longint;

lfWidth: Longint;

lfEscapement: Longint;

lfOrientation: Longint;

lfWeight: Longint;

lfItalic: Byte;

lfUnderline: Byte;

lfStrikeOut: Byte;

lfCharSet: Byte;

lfOutPrecision: Byte;

lfClipPrecision: Byte;

lfQuality: Byte;

lfPitchAndFamily: Byte;

lfFaceName: array[0..LF_FACESIZE - 1] of WideChar;

end;

TLogFont = TLogFontA;

其中涉及到很多参数,其中

lfHeight: Longint;

指定以逻辑单位标定的字体高度,取值可为正负或零,对于需要随意

定义字体高度的情况下通常取负值,以保证获得实际尺寸的字体。

lfWidth: Longint;

用于指定字体的平均宽度,由于Windows系统下的大多数字体都是比例

字体因而采用平均宽度这个表示方法。若指定为0,则系统会自动根据

适当的比例自动处理宽度。

lfEscapement: Longint;

指定输出方向与当前坐标系X轴之间的以十分之一度为单位的角度。

lfOrientation: Longint;

指定每个字符与当前坐标系X轴之间的以十分之一度为单位的角度。在

Windows95中这个值等同于lfEscpement。

lfWeight: Longint;

指定范围为从0至1000的字体加重程度,400是标准字体700为加重字体,

0表示采用默认值。

lfItalic: Byte;

不为0表示采用斜体字。

lfUnderline: Byte;

不为0表示带下划线。

lfStrikeOut: Byte;

不为0表示带穿透线。

lfCharSet: Byte;

指定字体集。

lfOutPrecision: Byte;

指定输出精度。用于确定对前面一些设定值的精确程度。

lfClipPrecision: Byte;

指定裁剪精度。裁剪是Windows图形环境下的一种特殊处理,简单说就是

去掉图形中落在视图以外的部分,有助于提高图形的处理速度。

lfQuality: Byte;

指定输出质量。

lfPitchAndFamily: Byte;

指定字体的Pitch和Family。

lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar;

指定采用的字体名称。

在建立逻辑字体时,我们通常使用

lfHeight和lfWidth来确定字体的尺寸,使用lfEscapement和lfOrientation

来确定字体的输出方向,使用lfWeight

lfItalic

lfUnderline

lfStrikeOut

来确定字体的加重,斜体,下划线和穿透线,使用lfCharSet

来确定字体的字符集,通常采用系统默认的字符集。

对于lfOutPrecision

lfClipPrecision

lfQuality一般应用于对屏幕之外

的输出设备,通常采用默认值。采用lfPitchAndFamily来确定采用定宽或可

变字体和字体的家族。以lfFaceName来通过名称选择采用的字体。

另外应当注意在Windows环境下,每种字体具体输出为何种形式取决于很多

因素,需要对以上这些参数进行有效的组合才能达到所要的效果。

酷6 CTO 陆坚:请先信任你的程序员 从电信联手i-Free,看运营商渠道的加速整合 “Animory”开发者分享HTML5游戏开发经验 Appflood SDK:连接中国与海外App流量交互平台 Apache Subversion 1.7.9正式发布! 微软IE浏览器5大动向 加速吸引开发者 开源的简繁转换库OpenCC支持Node.js 继Opera之后,Adobe表示将支持Google Blink 提高大型软件项目质量的一些实用型技术分享 谷歌推出Mirror API,开发者可为Google Glass开发应用 无需999,也不要499,99美元Linux超级计算机带回家 微软反击AWS:推出EC2并大幅降价,“价格战”正酣 Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 Jolla下月展示首款Sailfish手机 将重点发展中国区 海外1GB大容量游戏,国内渠道如何分发? 真正的能源大户是WiFi网络 数据中心只是“伪军” CloudFlare创始人传奇人生:7岁编程,法学博士,获哈佛商学院最高荣誉 2013云计算深入实践 大家帮忙看个程序 ACCESS数据库的小问题。 怎样使自己的问题成为热点问题的绝招! 关于c++builder中scanline的应用 跨数据库查询,请教各位高手! 这样的问题也没人会????????????????? 如何使用QuickRep制作简单报表?不牵涉任何DataSet的 关于Transaction的问题 请问 ListCtrl Item里的 Checkbox 被点击时对应的消息是什么? 100分~~100分~~高分求购。。。我也‘倾家荡产求购优秀系统分析案例’(paste from yyzh)。。。100分~~ 全中文的用Rose做的实际项目的UML模型! 救命!!我的机器不能下载东西了,怎么回事?? 求教邮件编程问题,邮件客户端如何实现“在服务器端保留备份的功能“? ciscoworks 各位大哥大虾,VC下如何用ADO连SQL SERVER?(急) ShellExecute和CreateProcess有什么区别? 关于海量数据、最有效率的排序、硬盘缓冲与映射、专业数据库的讨论 如何用VB编启动是可以带参数的程序呢?(例如:我自定义了一种文件,双击用我的程序打开,程序自动会打开这个文档 昨天我过生日,今天分蛋糕给大家 请问哪有《java图形设计2Swing篇》可以下? 我要用一个数据库去实时访问另一个据库,我该怎么办 URLghj1976@csdn.net----别吓我,有请您老人家! 谁给我介绍一下sql server7.0教材的比较好的下载网站,我给他20分。 我都急死了,到搜索引擎里搜到的好几个站点都不能用,到底哪儿可以当到3DMAX? 谁有写的比较好的邮件收发程序? 一个微软证书的私钥问题 微软证书的私钥问题 求助,简单问题 男人最快乐的十个瞬间! solaris下装oracle8.1.6遇到jre环境问题 怎抹加分?我准备给别人加40分,可我最多只能加20,请问另外20分怎末加分,为此我可能已得罪了一些人了。 请教下载的问题 如何在运行时动态修改Quick Report的打印机设置? 怎样做一个接受拽拖的LISTBOS(例如,把资源管理器里的文件拖到上面,就自动增加一项 ,就是拖的文件名) 怎样才能隐藏在ctrl+atl+del中进程列表中的项目啊 用C写DLL 请问:airhorse(编程至尊宝),infopower3000的注册码可以用于商业目的吗? 结构化异常处理 linux下如何配置内置Mondem? red hat linux7.0下安装oracle8.1.6遇到问题 我是菜鸟,问一个关于类的问题 问题:TWebbrower中,InnerHtml和OuterHtml以及InnerText和OuterText之间的区别 (加急)我要傻了,快救命啊!高分求救!!(回答正确者尽管开口要分!) ==============VC中怎样调试控制台程序=============? 再问:MS SQL6.5 的.DAT文件怎么恢复,请高手帮忙,(100分绝对对线) 白桦林 我需要自定义一个鼠标按下的事件,可我不知道该去那个参数?有人能告诉我吗? 有谁有比较好的javacript教学方面的电子文本? 两个关于数据库的问题(上次写的不太清楚),我的分快用完了,只能随便给点意思意思了! DotNet时代真正来临了/VB.NET/Beta2正式版下载地址/大家要就快点/如果FTP停了/可不要怪我 那里有DIRECTX编程的书或资料呢?(用VB编) 若代数式根号(2-a)的平方+根号(a-4)的平方的值是常数2则a的取值范围 已知a为实数,求代数式根号a+1减根号4-4a加根号-a²的值 化简二次根式 (根号b/a-根号a/b)/(根号a-根号b) 无论x取任何实数,代数式根号x的平方减6x加m都有意义,则m的取值范围是多少? 已知x=2-根号3,y=2+根号3,求代数式x平方+y平方的值 我在百度查到了你写的这道题的答案.x+y=4、xy=(2-√3)×(2+√3)=2²-(√3)²=1请问这个步骤怎么来的 已知xy大于0,二次根式x根号负y除以x平方=? 已知x=二分之一(根号7+根号5),y=二分之一(根号7-根号5),求X的平方-XY+Y的平方的值 当x=7时,求代数式根号x+5+根号x-4-根号4x-1的值 先化简,再求值:x+根号xy/根号xy+y+根号xy-y/x-xy,其中x=根号3+1,y=根号3-1 已知y=二分之一+根号下2x-1+根号下1-2x,求x的平方+xy+y的平方的值 当x=( )时0,代数式根号(4x+5)有最小的值,其最小值是( ). 化简根式根号10-4根号3+2根号2 已知实数xy满足|x-根号2|+根号(y+根号2/2)=0,求代数式x^100·y^101的值 已知x=1+根号5,求代数式x3-2x2-4x-5的值 化简根式a倍根号下a分之b+b倍根号下b分之a 【内有图片】 已知x=根号2+1,y=根号2-1,求代数式x-根号xy分之x-2倍根号xy+y的值.不是很清晰哈,破手机. 若根号下x加1乘2减x等于根号下x加1乘根号下2减x成立化简x加3的绝对值加根号下x*x减4x加4等于 急,把下列各式化成最简二次根式 第一题 5分之27倍根号下27分之13的平方减去12的平方第二题 负的2分之abc根号下2*a的四次方*b分之c的立方 已知实数x,y满足关系式│x+y-3│+根号(xy-6)=0,求代数式(x+2y)/y-x的值 化简:根号6减根号2的绝对值加根号2减1的绝对值减3减根号6的绝对值. 八年级数学题(先化简二次根式)根号12-根号4分之3-根号3分之1+根号27 若实数xy满足x^2+6x+根号(x-y+1)+9=0 求代数式((根号1/x-y)+(根号1/x+y))÷x/x^2-y^2 化简:根号2减去根号5的绝对值加上根号5减2的绝对值加上根号3减根号2的绝对值 二次根式 化简 根号下面(-a3次方)+根号a² xy是实数,且y=根号x-4+根号4-x+1/3,求代数式9y*2-6y+1的值. 已知0小于x小于1,化简根号(x减x分之1)的平方加4减根号(x加x分之1)的平方减4 化简二次根式根号下7+4根号3 设x=根号三减2分之一,y=根号三加二分之一,求代数式x+y分之x2+xy+y的值好的 设x=1/√3-2,y=1/√3+2 求代数式x2+xy+y2/x+y看的懂吗 已知X,Y都是实数,且满足Y<根号X-1+根号1-X+二分之一,化简:y-1分之1*根号(1-Y)平方 若最简二次根式三分之二根号5a²+1与5倍根号7a²-1能进行合并,则合并的值是? 先化简在求值;(x=2)平方—(2x—1)(2X—1)+4x(x—1),其中x=—2的根号下 若a ①根号5a ②根号4-B² ③c²④根号1-d分之1,是二次根式的有 已知1 化简根号[-(x+1)]的平方那个平方是加在x+1上面的 根号 18a²b五次方 化简二次根式 已知xy小于0 ,则根号x平方y 化简后 如果xA.4+x B.-x C.-4-x D.x 我知道选C, 求不等式负3小于等于4x减4x平方小于等于o的解集,这题怎么写? 已知a=-根号7+3分之2,求代数式a³+5a²-4a-6的值 已知0 (x减2分之x加2 减x平方减4x加4分之x减4)除以x平方加x 分之x平方减1 其中x=2+根号2先化简,再求值 已知x-2=-根号3,求代数式(x+1)²-6(x+1)+9的值. 先化简再求值:(3x+2)(3x-2)-4x(x+1)-(2x-1)的平方,其中x=根号3 已知x=3-2y,求3根号x-2y除以根号4x平方-16y平方 已知x=根号5+根号2,y=根号5-根号2,求代数式x²-xy+y²的值 根号((X+根号2)平方+1/4)减根号((X-根号2)平方+1/4)=2,求X根号((X+5)平方+Y平方)+根号((X-5)平方+Y平方)=10,求X 9减4倍根号5的算术平方根是多少最好有过程! 若a,b分别表示6减根号5的整数部分和小数部分,求代数式2ab减b的平方的差要求有过程. 已知x=根号2减1分之根号2加1,y=根号3加1分之根号3减1,求x的平方减y的平方 当x的算术平方根=2,则x2=16,三次根号负4x=? 已知x,y分别为8-根号11的整数部分和小数部分,求2xy-y的平方的值 已知x=2减根号3分之1,y=2加根号3分之一,求3x平方+5xy+3y平方 下列二次根式中,化简后被开方数与根号2的被开方数相同的是A根号0.2B根号2的平方C根号22D根号1/2A.根号0.2 B.根号2的平方 C.根号22 D.根号1/2为什么? 已知y=根号(x-8)+根号(8-x)+18,求代数式[(x+y)/(根号x+根号y)]-2xy/(x根号y-y根号x)的值 已知y=x+2分之根号x的平方减4加根号4减x的平方加2012成立,求x的平方加y减3的值 合并下列根式中的同类二次根式:1/2m乘以根号4m加上6m乘以根号9分之m减去2m的平方乘以根号m分之一明天1:00之前一定要,好的会追加分的 已知Y=根号X-8+根号8-X在加18,求代数式X-Y/根号X-根号y再减去2xy/x倍根号y-y倍的根号x的值. 若a为实数,求代数式√a+2-√8-4a+根号下负a的2次的值 已知XY
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn