请教几个关于BCB中RichEdit问题

yphy 2001-07-19 09:13:37
请教几个关于BCB中RichEdit问题:

1:如何向RichEdit中指定位置插入图片?

2:如何响应RichEdit的文本拖放事件?
以便于将文本滚到最前面。
(此事件实际上相当于VB中OLE拖放事件)

3:如何做到即见即所得打印?
即:1:在RichEdit窗口相应的坐标位置,并可
随纸张大小缩放RichEdit窗口进行打印。

2:其内文本的字体大小也一起缩放。由于RichEdit
内字体的大小个不相同,甚至可以说是随机的,
故不可能像处理Edit中字体那样处理。

3:只打印RichEdit窗口中可见的文本,其前和其后
隐藏在窗口后的文本则不打印。

本人利用SendMessage(RichEdit1->Handle,
EM_FORMATRANGE,true,(int)&fr);可实现前者,
但无法实现后两者。

多谢指教。
yphy
...全文
212 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitelion 2001-07-22
  • 打赏
  • 举报
回复
学习
yphy 2001-07-22
  • 打赏
  • 举报
回复
非常感谢 aningstar(aningstar) 的指点,不过,恐怕难以满足我的要求。
再次感谢。
「已注销」 2001-07-20
  • 打赏
  • 举报
回复
又是戴妃

@_@
aningstar 2001-07-20
  • 打赏
  • 举报
回复
1:贴一段delphi代码给你
用Memo显示图片,你可以自己改改这个控件,处理memo的 WM_Paint消息,画个图片。

type
TMyMemo = class(TMemo)
protected
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
end;


procedure TMyMemo.WMPaint(var Message: TWMPaint);
var
MCanvas: TControlCanvas;
DrawBounds : TRect;
Begin
inherited;
MCanvas:=TControlCanvas.Create;
DrawBounds := ClientRect; // Work with temporary TRect record.
Try
MCanvas.Control:=Self;
With MCanvas do
Begin
Brush.Color := clBtnFace;
FrameRect( DrawBounds );
InflateRect( DrawBounds, -1, -1);
FrameRect( DrawBounds );
FillRect ( DrawBounds );
MoveTo ( 33, 0 );
Brush.Color := clWhite;
LineTo ( 33, ClientHeight );
PaintImages;//定义的画图片过程
end;
finally
MCanvas.Free;
End;
end;



procedure TMyMemo.PaintImages;
var
MCanvas: TControlCanvas;
DrawBounds : TRect;
i, j : Integer;
OriginalRegion : HRGN;
ControlDC : HDC;
begin
MCanvas:=TControlCanvas.Create;
DrawBounds := ClientRect; // Work with temporary TRect record.
try
MCanvas.Control:=Self;
ControlDC := GetDC ( Handle );
MCanvas.Draw(0, 1, Application.Icon);
finally
MCanvas.Free;
end;
end;

wjzhuang 2001-07-19
  • 打赏
  • 举报
回复
1.不懂
2.写代码当成copy ,paste处理
3.不懂
建议你找一个类似word控件来实现或者直接调用word
SCUM 2001-07-19
  • 打赏
  • 举报
回复
立即废除 RichEdit,另立新妃!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧