我创建了一个具有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/