求救!!!关于textout输出字符的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 tanafenga
  • 开始时间 开始时间
T

tanafenga

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写一个仿真终端程序,需要在截面显示不同字体的文本。
设计时编写了一个控件来对文本用textout逐字显示,可以很好地实现多色彩,多字体显示。但是美中不足的是对于象“隶书”这样的字体,不同的字符需要的宽度是不一样(或者我没有找到如何获取某种字体字符的标准宽度),所以“隶书”等字体下逐字显示存在textout输出的定位不正确,导致字符显示不全。
各位大侠能不能出出招,解救一下小弟。
1、是否有比较好的方法计算出某种字体的宽度。
2、实在不行,考虑使用richedit.但是
请问在richedit控件中能否实现如下
"ABCD集散[red]地技术[/red]棵[yellow]asa[/yellow]"
象这样多中色彩,字体,不同的背景颜色甚至部分字符闪烁,可以实现吗?
 
好象有计算字符在屏幕长度的API函数,查查看,记不清了。
 
Canvas.TextWidth('A');
GetTextExtentPoint32
 
ANiDelphi
首先我用的控件没有使用canvas,
其次,如果逐个计算出每个字体的宽度在的话,在设计鼠标选择复制文本的时候有困难。
是否知道本字体中最大字符的宽度和高度呢?
我用过gettextmetric ,获取metrics中的宽和高,效果都不理想
只有宋体的显示最标准
 
GetTextExtent
 
效果还是不怎么好,不过还是谢谢了
 
后退
顶部