【问题标题】:How to catch the OnScroll Event on RichEdit?如何在 RichEdit 上捕捉 OnScroll 事件?
【发布时间】:2011-05-30 07:49:07
【问题描述】:

我创建了一个自定义 Rich,它有一个 scrollPos 事件。

所以我有这个代码:

procedure TCustomRich.WMVScroll(var Msg : TWMVScroll);
begin
  inherited;
  if (Msg.ScrollCode in [SB_THUMBTRACK, SB_THUMBPOSITION]) then
    FScrollY := Msg.Pos;
  if Assigned(OnScroll) then
    OnScroll(Self, FScrollX, FScrollY);
end;

procedure TCustomRich.WMHScroll(var Msg : TWMVScroll);
begin
  inherited;
  if (Msg.ScrollCode in [SB_THUMBTRACK, SB_THUMBPOSITION]) then
    FScrollX := Msg.Pos;
  if Assigned(OnScroll) then
    OnScroll(Self, FScrollX, FScrollY);
end;

但问题是使用键或鼠标滚轮滚动时不会触发。

【问题讨论】:

    标签: windows delphi events message


    【解决方案1】:

    TRichEdit 在这方面可能是一个尴尬的客户。您需要结合 WM_VSCROLL 和 WM_HSCROLL 消息处理 EN_VSCROLL 和 EN_HSCROLL 通知消息。

    我发现了一篇 C++ Builder 文章,其中显示了所需内容:http://bcbjournal.com/bcbcaq/?loc=edits&caq=29

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多