我需要禁用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應用程序的工作方式非常相反。這樣做的目標是什麼?可能有更好的方法。 –
我不明白爲什麼人們投票結束「不清楚你在問什麼」,我很清楚要問什麼,不清楚的是爲什麼。 –