CFont中字间距和行间距,加大些,应该怎么调整

时间:2022-09-03 06:10:17
使用CFont的CreateFont创建,调整间距一般是倒数第二个参数 ,常规定义为DEFAULT_PITCH | FF_SWISS 如何增大字的左右间距,和行间距呢

9 个解决方案

#1


该回复于2010-12-27 08:38:46被版主删除

#2


重载CreateFont进去看看呢,默认的这些传入参数恐怕不能满足要求

#3


FIXED_PITCH|FF_SWISS可以调节左右间距

#4


引用 3 楼 tigermaydo 的回复:
FIXED_PITCH|FF_SWISS可以调节左右间距


哪里设置参数细调,麻烦说详细下,还是没找到

#5


nPitchAndFamily 指定字体的间距和家族。两个低位指定字体的间距,可为以下值之一:
DEFAULT_PITCH、VARIABLE_PITCH、FIXED_PITCH
应用可以将T\MPF_TRUETYPE加到nPitchAndFamily参数中来选择一个TrueType字体。高四位指定字体家族,可为以下值之一:
· FF_DECORATIVE 新奇字体,如以前英格兰的字体。
· FF_DONTCARE 不在意或不知道。
· FF_MODERN 笔型宽度不变的字体,有或无衬线。固定斜度的字体常是现代风格的,如Pica,Elite和Courier New。
· FF_ROMAN 笔划宽度可变(接比例调整空间)及有衬线字体。如Times New Roman和Century Schoolbook。
· FF_SCRIPT 与手写体相似的字体,如Script和Cursive。
· FF_SWISS 笔划宽度可变(接比例调整空间)及不带有衬线字体,如MS Sans Serif。
一个应用可用布尔操作OR指定一个nPithAndFamily值以组合一个斜体和一个家族常数。
字体家族用普通方式描述了字体的外观,它们在所需铅字体无效时用于定义指定的字体。

#6


我的意思是,有没有整形类的,让行间距和左右间隔,每个字比如空3和像素或5个像素,这样的具体设置,上面这些定义MSDN倒是写的有,用DrawText输出多行,一堆太挤了

#7


顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

#8


引用 7 楼 drsmart 的回复:
顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

CDC::SetTextCharacterExtra()函数可以调整文字之间的间距
你可以分多次DrawText这样,行间距不就出来了

#9


引用 8 楼 visualeleven 的回复:
引用 7 楼 drsmart 的回复:
顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

CDC::SetTextCharacterExtra()函数可以调整文字之间的间距
你可以分多次DrawText这样,行间距不就出来了


你说的这个,我也想过,但是我是实用DrawText DT_WORDBREAK打印多行的,SetTextCharacterExtra 是整数,好像间隔不好细调整,不知道还有没有更好的方法了,郁闷中

#1


该回复于2010-12-27 08:38:46被版主删除

#2


重载CreateFont进去看看呢,默认的这些传入参数恐怕不能满足要求

#3


FIXED_PITCH|FF_SWISS可以调节左右间距

#4


引用 3 楼 tigermaydo 的回复:
FIXED_PITCH|FF_SWISS可以调节左右间距


哪里设置参数细调,麻烦说详细下,还是没找到

#5


nPitchAndFamily 指定字体的间距和家族。两个低位指定字体的间距,可为以下值之一:
DEFAULT_PITCH、VARIABLE_PITCH、FIXED_PITCH
应用可以将T\MPF_TRUETYPE加到nPitchAndFamily参数中来选择一个TrueType字体。高四位指定字体家族,可为以下值之一:
· FF_DECORATIVE 新奇字体,如以前英格兰的字体。
· FF_DONTCARE 不在意或不知道。
· FF_MODERN 笔型宽度不变的字体,有或无衬线。固定斜度的字体常是现代风格的,如Pica,Elite和Courier New。
· FF_ROMAN 笔划宽度可变(接比例调整空间)及有衬线字体。如Times New Roman和Century Schoolbook。
· FF_SCRIPT 与手写体相似的字体,如Script和Cursive。
· FF_SWISS 笔划宽度可变(接比例调整空间)及不带有衬线字体,如MS Sans Serif。
一个应用可用布尔操作OR指定一个nPithAndFamily值以组合一个斜体和一个家族常数。
字体家族用普通方式描述了字体的外观,它们在所需铅字体无效时用于定义指定的字体。

#6


我的意思是,有没有整形类的,让行间距和左右间隔,每个字比如空3和像素或5个像素,这样的具体设置,上面这些定义MSDN倒是写的有,用DrawText输出多行,一堆太挤了

#7


顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

#8


引用 7 楼 drsmart 的回复:
顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

CDC::SetTextCharacterExtra()函数可以调整文字之间的间距
你可以分多次DrawText这样,行间距不就出来了

#9


引用 8 楼 visualeleven 的回复:
引用 7 楼 drsmart 的回复:
顶下,看看有高手没,可能太偏了,调整下具体的字间距,有什么方法没啊

CDC::SetTextCharacterExtra()函数可以调整文字之间的间距
你可以分多次DrawText这样,行间距不就出来了


你说的这个,我也想过,但是我是实用DrawText DT_WORDBREAK打印多行的,SetTextCharacterExtra 是整数,好像间隔不好细调整,不知道还有没有更好的方法了,郁闷中