如何捕获外部控件的移动事件?急!急!!急!!!(200分)

  • 主题发起人 主题发起人 lxggc
  • 开始时间 开始时间
L

lxggc

Unregistered / Unconfirmed
GUEST, unregistred user!
本人指制了一个控件(从TcustomLabel继承),他的FocusControl指向另外的TwinControl控件,
现在的要求是:在外部的TWinControl移动时,在我的控件内部能捕获对应的移动消息(比如能
移动外部控件时,我的控件也同时移动),该如何做?
 
给你一个DEMO,看懂了就知道怎么做了:
//放一个Label, Button在Form上。
private
{ Private declarations }
OldBtnProc: TWndMethod;
procedure BtnProc(var Msg: TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BtnProc(var Msg: TMessage);
begin
OldBtnProc(Msg);
if Msg.Msg = WM_MOVE then
begin
Label1.Left := Button1.Left - Label1.Width;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldBtnProc := Button1.WindowProc;
Button1.WindowProc := BtnProc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Left := Button1.Left + 20;
end;
 
ok,谢谢xianjun,高手就是高手!
 
后退
顶部