对于一个没有OnMouseDown的控件再不改变控件的前提下,如何处理ONMouseDown?谢谢
对于一个没有OnMouseDown的控件再不改变控件的前提下,如何处理ONMouseDown?谢谢,麻烦详细些谢谢 问题点数:20、回复次数:6Top
1 楼tommyjian(海里的猫)回复于 2002-04-25 16:43:27 得分 2
那你只能在窗体的消息循环中来捕捉鼠标消息了,在捕获消息后,在判定有关信息Top
2 楼erp2(天涯劍)回复于 2002-04-25 16:46:53 得分 0
我也很想知道。强烈关注。Top
3 楼dancemaple(枫之舞)回复于 2002-04-25 16:52:42 得分 3
重载控件的WndProc方法,让它相应WM_LBUTTONDOWN消息。只要是从TControl继承的,都有这个方法。这算不算修改控件?Top
4 楼pankane(半瓶水)回复于 2002-04-25 19:41:13 得分 0
能不能具体些,最好有代码,我是新手,不太懂Top
5 楼dancemaple(枫之舞)回复于 2002-04-25 20:01:06 得分 15
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FOldWndProc: TWndMethod;
procedure NewWndProc(var Msg: TMessage);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
FOldWndProc := Edit1.WindowProc;
Edit1.WindowProc := NewWndProc;
end;
procedure TForm1.NewWndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_LBUTTONDOWN then
Caption := 'MouseDown!';
FOldWndProc(Msg);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := 'Click!';
end;
end.Top
6 楼pankane(半瓶水)回复于 2002-04-25 21:36:33 得分 0
谢谢,我试试,到时候给分Top




