var Cav:TCanvas; use GDI,好在你选择了DELPHI,所以...可以用TCanvas,如果是从TGraphicControl派生可以直接调用,如Label1.Canvas.Brush.Style:=bsClear; Label1.Canvas.Font.Color:=clBlack; Label1.Canvas.TextOut((Label1.Width-100) Div 2,Panel1.Height Div 2,'How are you'); Label1.Canvas.Font.Color:=clRed; Label1.Canvas.TextOut((Label1.Width+25) Div 2,Panel1.Height Div 2,'doing');如果是TWinControl?继承TCanvas,封装成控件!var Cav:TCanvas; begin Cav:=TCanvas.Create; Cav.Handle:=GetDC(Panel1.Handle); Cav.Brush.Style:=bsClear; Cav.Font.Color:=clBlack; Cav.TextOut((Panel1.Width-100) Div 2,Panel1.Height Div 2,'How are you'); Cav.Font.Color:=clRed; Cav.TextOut((Panel1.Width+25) Div 2,Panel1.Height Div 2,'doing'); end;记得设置大小和除去以前的Caption!还有一很重要问题,重绘,使用TImage不用考虑这个,因为Image.Canvas实际上是Image.Picture.Bitmap.Canvas,实际上就是图像了!其它的就要考虑对WM_PAINT消息的处理,比如有些控件就有OnPaint事件!其实掌握一定技巧和规则,封装成控件不是什么高深的工作,可以自己试试!
use GDI,好在你选择了DELPHI,所以...可以用TCanvas,如果是从TGraphicControl派生可以直接调用,如Label1.Canvas.Brush.Style:=bsClear;
Label1.Canvas.Font.Color:=clBlack;
Label1.Canvas.TextOut((Label1.Width-100) Div 2,Panel1.Height Div 2,'How are you');
Label1.Canvas.Font.Color:=clRed;
Label1.Canvas.TextOut((Label1.Width+25) Div 2,Panel1.Height Div 2,'doing');如果是TWinControl?继承TCanvas,封装成控件!var
Cav:TCanvas;
begin
Cav:=TCanvas.Create;
Cav.Handle:=GetDC(Panel1.Handle);
Cav.Brush.Style:=bsClear;
Cav.Font.Color:=clBlack;
Cav.TextOut((Panel1.Width-100) Div 2,Panel1.Height Div 2,'How are you');
Cav.Font.Color:=clRed;
Cav.TextOut((Panel1.Width+25) Div 2,Panel1.Height Div 2,'doing');
end;记得设置大小和除去以前的Caption!还有一很重要问题,重绘,使用TImage不用考虑这个,因为Image.Canvas实际上是Image.Picture.Bitmap.Canvas,实际上就是图像了!其它的就要考虑对WM_PAINT消息的处理,比如有些控件就有OnPaint事件!其实掌握一定技巧和规则,封装成控件不是什么高深的工作,可以自己试试!