TextOut
DrawText
都不能设置在一段文字中的某几个字符颜色或效果,
也考虑过TextOut几个字符后更改画刷再TextOut,
但字间距、换行之类的实在太难控制,
有什么API或算法能做到?
DrawText
都不能设置在一段文字中的某几个字符颜色或效果,
也考虑过TextOut几个字符后更改画刷再TextOut,
但字间距、换行之类的实在太难控制,
有什么API或算法能做到?
解决方案 »
- 使用D7进行Activex开发中,方法或过程在TYPE LIB中如何设置?
- delphi+word处理报表的问题
- 简单问题,webBrowser打开网页是否无法实现自动滚屏?
- 静态调用DLL参数传递出错,请高手指点
- 欢迎讨论:大家为什么选择用delphi,而不用其它的语言像VB等
- Delphi7生成可执行文件问题?
- 如何将excel表中的字段和数据导入到SQL Server数据库中???
- 要通过公网得到远程的轻量级数据,用什么方法好。
- 我是delphi初学者,不知道在delphi里怎样才能看到所有局部变量的值,就如pb和vf等一样,这样可以方便跟踪程序,或者能否提供一些调试程序的一些经验。
- 那么在报表上就要做一个单号了,请问这个ID字段怎样做成一个类似S0003784这样格式的单号
- 在线急等!!
- 有关MDI窗体大小的问题!
字宽之类的你去查MSDN的Font and Text Functions专题
Pen.Font:=!@@@43 (记不清了!);
TextOut(10,10,'试');
Pen.color:=$00332211;
Pen.Font:=&^%^$ (记不清了!);
TextOut(20,10,'试');
^^^^^^^^^^^^^^^
多颜色 多字体.......................笨方法
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.Font.Color := clGreen;
Self.Font.Name := 'Arial';
Self.Font.Size := 40;
Self.Canvas.Brush.Style := bsClear; BeginPath(Self.Canvas.Handle);
Self.Canvas.TextOut(10, 10, 'Hello, world!');
EndPath(Self.Canvas.Handle); SelectClipPath (Self.Canvas.Handle, RGN_COPY) ; BitBlt(Self.Canvas.Handle, 10, 10, Self.Width, Self.Height,
Image1.Canvas.Handle, 0, 0, SRCCOPY);
StrokeAndFillPath(Self.Canvas.Handle);
end;
行距控制可以使用Image1.Canvas.TextRect, 这样控制的比较准确。
获取字体的宽和高: Image1.Canvas.TextHeight('我'); Image1.Canvas.TextWidth('你');
其实你的要求更容易实现,不用BitBlt,直接绘制矩形就可以了。具体代码我就不写了。
用DrawText设定一个区域写入的字符需要自动换行的
如果仅仅只是需要第50-60个字符变一种颜色,或换个字体,或改变字体大小(也可能组合上述条件),怎么算出具体在什么位置....
http://download.csdn.net/source/197437看看这个吧,这个程序实现了在Bitmap上写字的功能.