怎么才能把Memo或Richedit中的内容,输出成文字格式一样的图片 ( 积分: 50 )

  • 主题发起人 主题发起人 qet006
  • 开始时间 开始时间
Q

qet006

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么才能把Memo或Richedit中的内容,输出成文字格式一样的图片;
也就是把编辑框里的文字像抓图一样,输出成图片格式
用控件也行,代码也行,谢谢各位了
 
怎么才能把Memo或Richedit中的内容,输出成文字格式一样的图片;
也就是把编辑框里的文字像抓图一样,输出成图片格式
用控件也行,代码也行,谢谢各位了
 
那位高手指点一下呀
 
得到Richedit里面的内容保存为图形!
uses richedit;

procedure TForm1.Button1Click(Sender: TObject);
var
Range : TFormatRange;
LastChar, MaxLen, LogX, LogY: Integer;
begin
FillChar(Range, SizeOf(TFormatRange), 0);
with Image1, Range do
begin
LogX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
LogY := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);
hdc := Canvas.Handle;
hdcTarget := hdc;
rc.right := Image1.ClientWidth * 1440 div LogX;
rc.bottom := Image1.ClientHeight * 1440 div LogY;
rcPage := rc;
LastChar := 0;
MaxLen := GetTextLen;
chrg.cpMax := -1;
repeat
chrg.cpMin := LastChar;
LastChar := SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 1,
Longint(@Range));
until (LastChar >= MaxLen) or (LastChar = -1);
end;
SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 0, 0);
Image1.Refresh;
end;
 
谢谢了
我试了下很好用,
再问下,如果我的edit中加入了图片,能不能还这样转了
 
paintto 方法不知行不行.
 
用抓图的方法
procedure TForm1.Button1Click(Sender: TObject);
var //变量声明
bmp:Tbitmap;
ACanvas:TCanvas;
dc:HDC;
//------------------------------------------------------------
begin
DC := GetDC (RichEdit1.Handle);

RichEdit1.Font.Color:=clred;
ACanvas := TCanvas.Create;
ACanvas.Handle := DC;
bmp:=Tbitmap.Create;
bmp.Height:=RichEdit1.Height;
bmp.Width:=RichEdit1.Width;
bmp.Canvas.CopyRect
(Rect (0, 0,RichEdit1.Width ,RichEdit1.Height),
ACanvas,
Rect (0, 0, RichEdit1.Width, RichEdit1.Height));

ACanvas.Free;
ReleaseDC (0, DC);
canvas.Draw(0,0,bmp);
end;
 
copy屏幕

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
procedure TForm1.Button1Click(Sender: TObject);
var
dc:hdc;
mycanvas:TCanVas;
mybitmap:TBitmap;
begin
application.Minimize;
mycanvas:=TCanvas.Create;
mybitmap:=tbitmap.Create;
dc:=getdc(0);
try
myCanvas.Handle := DC;
with Screen do
begin
MyBitmap.Width := Width;
MyBitmap.Height := Height;
MyBitmap.Canvas.CopyRect(Rect(0,0,Width,Height),myCanvas,Rect(0,0,Width,Height));
image1.Picture.Bitmap.Assign(mybitmap);
end;
finally
releasedc(0,dc);
mycanvas.Free;
mybitmap.Free;
end;
application.Restore;
end;
 
后退
顶部