【问题标题】:Delphi - RichEdit Zoom with codeDelphi - RichEdit 缩放代码
【发布时间】:2016-10-25 23:26:18
【问题描述】:

如果您在richedit中加载一些文本并单击鼠标左键+移动鼠标滚轮,文本将放大或缩小,而不会丢失文本大小格式。

有没有一种简单的方法可以通过几行代码来实现这个功能(放大/缩小)?

谢谢

射线

【问题讨论】:

    标签: delphi zooming richedit


    【解决方案1】:

    您可以发送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 的默认名称。赞成 - 只是一些建议。如果您愿意,可以免费忽略它们。 :-)
    • @KenWhite 我建议将第一个参数更改为T(Custom)RichEdit 而不是THandle。很多东西用THandle但是不适合用EM_SETZOOM甚至SendMessage()
    • @Remy:是的。更好。
    【解决方案2】:

    在 Delphi XE6 及更高版本中,TRichEdit 具有 Zoom 属性。将此设置为您想要的缩放百分比。

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多