【发布时间】:2016-10-25 23:26:18
【问题描述】:
如果您在richedit中加载一些文本并单击鼠标左键+移动鼠标滚轮,文本将放大或缩小,而不会丢失文本大小格式。
有没有一种简单的方法可以通过几行代码来实现这个功能(放大/缩小)?
谢谢
射线
【问题讨论】:
如果您在richedit中加载一些文本并单击鼠标左键+移动鼠标滚轮,文本将放大或缩小,而不会丢失文本大小格式。
有没有一种简单的方法可以通过几行代码来实现这个功能(放大/缩小)?
谢谢
射线
【问题讨论】:
您可以发送EM_SETZOOM到富编辑控件设置缩放比例
procedure SetZoom(const RichEdit: TCustomRichEdit; const Value: Integer);
const
EM_SETZOOM = (WM_USER + 225);
begin
SendMessage(RichEdit.Handle, EM_SETZOOM, Value, 100);
end;
procedure TForm26.btn1Click(Sender: TObject);
begin
SetZoom(RichEdit1, 200);
end;
【讨论】:
EM_ZOOM 已在 richedit.pas 中定义(在 Source\RTL\Win 文件夹中)。此外,最好定义procedure SetZoom(const hRichEdit: THandle; const Value: Integer); 以明确它不是RichEdit(参数名称令人困惑)。您对 SetZoom 的调用也将更清楚地显示为SetZoom(RichEdit1.Handle, 200);,这是放置在表单上的 RichEdit 的默认名称。赞成 - 只是一些建议。如果您愿意,可以免费忽略它们。 :-)
T(Custom)RichEdit 而不是THandle。很多东西用THandle但是不适合用EM_SETZOOM甚至SendMessage()。
在 Delphi XE6 及更高版本中,TRichEdit 具有 Zoom 属性。将此设置为您想要的缩放百分比。
【讨论】: