如何将RichEdit中的带格式文本转化到图片中(100分)

A

apiao

Unregistered / Unconfirmed
GUEST, unregistred user!
var
dc:HDC;
c:TCanvas;
r:TRect;
bmp:TBitmap;
bmp:=TBitmap.Create;
c:=TCanvas.Create;
dc:=GetWindowDC(RichEdit1.Handle);
c.Handle:=dc;
r.Left:=0;
r.Top:=0;
r.Right:=RichEdit1.Width;
r.Bottom:=RichEdit1.Height;
bmp.Width:=RichEdit1.Width;
bmp.Height:=RichEdit1.Height;
bmp.Canvas.CopyRect(r,c,r);
ReleaseDC(RichEdit1.Handle,dc);
//bmp包含了RichEdit1的图像
//但是要注意,当前窗口要激活,如果执行这段代码的时候,richedit在其他窗口下面
那么复制到的是richedit上面的窗口的对应位置的图像
 
谢谢 pipi:
我的要求是将rtf的文本转化到指定宽度的图片中去,文本可能比较大,在richedit中
显示不开。
 
一瞬间把richedit放大,拷贝完了再缩小回原状:)
 
把文本取出来,按格式TextOut到指定的DC上去。
 
to pipi:
我的文本超长,超出屏幕的高度,表单能放下吗?
to 吕雪松:
如何得到文本的居中,居右的信息,如何得到个别设定的字体信息,
如何调整行间距
 
那你要做个那么大的bmp干嘛
 
我要把转换的图片用在LED显示屏上,屏不大,要显示的内容多。又只能接受图形文件。
只好用滚动的方式来显示内容。
 
那就控制richedit滚动到需要的内容,然后拷贝到bitmap啊
 
to Pipi:
如何实现,拜托
 
就是说,你计算一下,目前LED需要显示什么内容,在RichEdit中把原来的内容清除掉
把目前LED需要的显示内容放到Richedit上,led不大,那么你的richedit应该做到至少
能够显示led一屏的内容。每次richedit都清除上一屏的内容,放入当前一屏的内容,
然后用上面的方法拷贝到TBitmap
 
to Pipi:
我在LED屏上要实现滚动效果,必须要整幅的图片。
1,图片如何连接
2,richedit中的内容如何精确移动
 
richedit中的内容精确移动:
SendMessage(RichEdit1.handle,WM_VSCROLL,MakeLong(SB_THUMBTRACK,精确的位置),0);
 
我以前是做LED多媒体显示屏软件的,若需要可以试用。
 
我做LED显示屏软件,有现成的软件,若需要可以试用。zzutrain@163.com
 

Similar threads

顶部