关于在内存中做一个BMP的问题!!!!!(100分)

  • 主题发起人 主题发起人 netsun
  • 开始时间 开始时间
N

netsun

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在内存中做一个BMP,在它上而打上几个字,然后再把它COPY到窗口上。但我做出来的BMP都只是黑白两色的,为什么,高手来指教。给个例子。
 
procedure TForm1.Button2Click(Sender: TObject);
var
b:TBitmap;
begin
b:=TBitmap.Create;
b.width:=100;
b.height:=100;
b.Canvas.brush.Color:=clRed;
b.Canvas.pen.Color:=clRed;
b.Canvas.Rectangle(rect(0,0,100,100));
B.Canvas.Font.COLOR:=$00fFFF;
B.Canvas.Font.Size:=24;
b.Canvas.TextOut(10,10,'AAA');
b.Canvas.brush.style:=bsClear;

B.Canvas.Font.COLOR:=$FF0000;
B.Canvas.Font.Size:=24;
b.Canvas.TextOut(15,10,'AAA');

canvas.Draw (0,0,b);
b.free;
end;
 
bitmap.canvas.p??format := psf24bit ; //for true color ;
bitmap.canvas.p??format := psf1bit ; //for mono image ;
PROPERTY名字记不清楚了,查一下吧。
 
好呀,我回去试试。我本来是这样做的。
var
mypen:hpen;
mybrush:tcolorref;
myfont:hfont;
myhdc:hdc;
mybmp:hbitmap;

myhdc:=getdc(handle);
mypen:=createpen.....
mybrush:=create....
myfont:=.....
mybmp:=createcompatiblebitmap.....;//呵,忘记了正确的写法,做一个兼容的BMP
selectobject(myhdc,mypen);
selectobject(myhdc,mybrush);
selectobject(myhdc,myfont);
selectobject(myhdc,mybmp);

textout(myhdc,0,0,'sgsdgsdfg');
.....//COPY BMP
delectobject......
releasedc(myhdc);

结果BMP总是黑白的。

 
写几个文字容易,但如何在Bitmap图形中写上一个table中的记录,并自动控制每个字段值
在图形中显示。
例如格式:
车型:大众
   厂址:上海.宝岗区.铜阮路57号 
其中'上海.宝岗区.铜阮路57号' 可能超过的长度,要另行显示,如何在bitmap中显示表中记录并
自动控制可能要另行显示的字段值。
 
我已解决了,多谢各位!!!
 
后退
顶部