如何以图形格式获得RichEdit、Memo编辑控件内的内容?(50分)

  • 主题发起人 主题发起人 Blueman
  • 开始时间 开始时间
B

Blueman

Unregistered / Unconfirmed
GUEST, unregistred user!
请问大侠们如何以图形格式获得RichEdit、Memo编辑控件内的内容?

就是说超过编辑控件可视区域的文字内容也能通过什么方法获得它的图像?不要用textout
自己写,因为关到字体颜色等问题,比较麻烦。

最好能有什么方法让控件自己往一个自建的DC里画,DC的大小由自己控制。

谢谢!

 
来自:liuly, 时间:2000-3-31 17:52:00, ID:209276
下面示例可以将RichEdit的内容输出到一个Image中,只要你将
Image设为足够大,即可得到RichEdit中的所有内容,然后再
Image1.Picture.SaveToFile输出到一个BMP文件即可:

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;


 
非常感谢 bubble 大侠!
请问您有RichEdit messages的详细说明吗?最好是中文的:),另外在D6自带的RichEdit
控件里能插入图片吗?不胜感谢!
 
接受答案了.
 
后退
顶部