我需要禁用TRichEdit组件的事件OnMouseEnter上的两个鼠标按钮,并再次启用事件OnMouseLeave。Delphi禁用鼠标按钮并再次启用
设置TRichEdit enabled = false并不能解决我的问题。
任何提示?
我需要禁用TRichEdit组件的事件OnMouseEnter上的两个鼠标按钮,并再次启用事件OnMouseLeave。Delphi禁用鼠标按钮并再次启用
设置TRichEdit enabled = false并不能解决我的问题。
任何提示?
您可以对丰富的编辑进行子类化,以拦截鼠标按钮的向下/向上消息。然后你不需要看着鼠标进入,离开控制。例如:
type
TForm1 = class(TForm)
...
private
FSaveRichEditProc: TWndMethod;
procedure RichEditWindowProc(var Message: TMessage);
..
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
FSaveRichEditProc := RichEdit1.WindowProc;
RichEdit1.WindowProc := RichEditWindowProc;
end;
procedure TForm1.RichEditWindowProc(var Message: TMessage);
begin
case Message.Msg of
WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK,
WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MBUTTONDBLCLK,
WM_RBUTTONDOWN, WM_RBUTTONUP, WM_RBUTTONDBLCLK:
begin
Message.Result := 0;
Exit;
end;
end;
FSaveRichEditProc(Message);
end;
那么,禁用富编辑将不会禁用鼠标按钮。或者这可能不是真正的问题。 –
请问为什么?这似乎与Windows应用程序的工作方式非常相反。这样做的目标是什么?可能有更好的方法。 –
我不明白为什么人们投票结束“不清楚你在问什么”,我很清楚要问什么,不清楚的是为什么。 –