windows - 如何捕获 RichEdit 上的 OnScroll 事件?

标签 windows delphi events message

我创建了一个具有scrollPos事件的自定义Rich。

所以我有这个代码:

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;

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

最佳答案

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

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

关于windows - 如何捕获 RichEdit 上的 OnScroll 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173588/

相关文章:

delphi - 如何等待命令行程序完成?

arrays - Variant数组和动态数组之间有哪些区别?

windows - Qt Creator 交叉开发和 Windows DLL

windows - 升级安装后 Vista/Win7 资源管理器快捷方式中的应用程序图标损坏

windows - SysInternals WinObj 设备列表机制

java - 尝试使用 Delphi 更改 Android 设备 R/W 权限时发生访问冲突

javascript - 如何在复选框单击时停止事件冒泡

类 Java 回调/事件方法?

jquery 可放置目标

java - Windows 上非常奇怪的 FileOutputStream 行为