CreateFont第一个参数还是不知道正负有什么区别 createfont
函数CreateFont()的lfHeight函数.通常人们习惯于用点作为大小的单位,比如Size 10,Size 12等等.但是在处理字体时,函数CreateFont()并不接受点作为大小的单位.它需要的逻辑单元.逻辑单元用于你的显示器和你的打印机是不同的.
这种情况存在的原因就是因为不同设备的分辩率相差很大...打印机可以轻松地显示每英寸600至1200像素,而对于显示器能得到每英寸200像素的分辩率就很幸运了...假如你在打印机上用的是和显示器同样大小的字体,很可能你看不到单个单个的字符.
我们所要做的就是将以点为大小单位的字体转变成设备所需要的恰当的逻辑大小.因此我们要获取显示器的设备环境句柄HDC,然后用函数GetDeviceCaps()获取每英寸的逻辑像素的数值.然后再根据MSDN中告诉我们的,将这个数值与12相乘再除以72,就将字体大小为12个点转换成了CreateFont()函数所需要的正确的逻辑大小.至于乘以12除以72就可以用函数MulDiv().得到的这个逻辑大小值我们将它存储在lfHeight,再将它作为第一个参数传送给CreateFont()
nHeight 字体高度(逻辑单位)等于零为缺省高度,否则取绝对值并和可用的字体高度进行匹配
lfHeight 这是以逻辑单位表示的希望的字元高度。您可以将lfHeight设定0,以使用内定大小,或者根据栏位代表的含义将其设定为正数或负数。如果将lfHeight设定为正数,就表示您希望该值表示含有内部间隔(不是外部间隔)的高度。实际上,所要求的字体行距为lfHeight。如果将lfHeight设定为负值,则Windows会将其绝对值作为与点值一致的字体高度。这是一个很重要的区别:如果想要特定点值的字体,可将点值转换为逻辑单位,并将lfHeight栏位设定为该值的负数。如果lfHeight是正值,则TEXTMETRIC结构的tmHeight栏位近似为该值(有时有微小的偏差,可能由於舍入误差所引起)。如果lfHeight是负值,则它粗略地与不包括tmInternalLeading栏位的TEXTMETRIC结构的tmHeight栏位相匹配
更多阅读
MM们必须知道CC霜和BB霜有什么区别? 粉饼和cc霜的区别
MM们必须知道CC霜和BB霜有什么区别?——简介CC霜和BB霜之间实际上既有联系又有区别,本身CC霜就是在BB霜的基础上配方得来,故有CC霜是BB霜的升级版的说法,所以CC霜集合了BB霜原有的优点,比如美白保湿、修颜、隔离防晒等功效的基础上又加入
如果你也知道你该去微博,如果你不知道微博上不知道该关注谁。我 你不知道我有多爱你
本来给几个朋友看的,结果就点击20000了本人微博:@铜雀东俺滴个后悔呀现在就是做微博工作的。这些名字不排序了,啥都不懂的都关注上就行。微博的精髓在于定期清理关注,不是关注的越多越好,对那些产出不好的帐号要及时取消。把你不想漏掉的
宝宝用的纸尿裤和尿不湿有什么区别?怎么选用? 纸尿裤好还是尿不湿好
宝宝用的纸尿裤和尿不湿有什么区别?怎么选用?很多妈妈都对用纸尿裤还是尿不湿有疑惑,当然纸尿裤和传统尿不湿各有利弊,看你觉得哪个重要了。纸尿裤的使用是一次性的,方便卫生,妈妈也省事,宝宝的屁屁干爽舒适,自然不哭不闹啦。选择好的纸
转载 厘清与理清,你知道有什么区别吗? 理清与厘清的区别
原文地址:厘清与理清,你知道有什么区别吗?作者:徐徐道来厘清与理清,你知道有什么区别吗?在研读《教育技术学基础理论研究》的前言第4页时,有这样一段文字:“把教育级数学置于科学与技术之林,讨论和分析了教育技术学与教育科学及技术各相关分
分数“单位1”与自然数“1”有什么区别 分数算不算自然数
分数“单位1”与自然数“1”有什么区别内容提要:什么是“单位1”?单位1与自然数1有什么区别与联系?教学中并没有给学生一个清晰明确的答案。弄不清单位1与自然数1的区别与联系,就不能正确地认识理解分数的意义,正确的认清分数与整数的关