如何让一个无鼠标事件的控件获得鼠标事件?(100分)

B

bihai

Unregistered / Unconfirmed
GUEST, unregistred user!
如是,因为有的控件,比如报表(Quickrep下的控件,都不具备Mouse的感知功能,我想让它具备这方面的功能。
请教了。
 
从现有控件中派生新的控件。举个例子吧。
TNewCompont = class(TComponent)
private
{ Private declarations }
FWndHandle:THandle;
......
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
procedure WndProc(var Msg:TMessage);
constructor TNewCompont .Create(AOwner: TComponent);
begin
inherited;
FWndHandle:=AllocateHWnd(WndProc);
end;

destructor TNewCompont.Destroy;
begin
DeallocateHWnd(FWndHandle);
inherited;
end;

procedure TNewCompont.WndProc(var Msg: TMessage);
begin
if Msg.Msg=WM_MouseMove then
begin
..........//在此处理消息
end
else
Dispatch(Msg);
end;

 
接受答案了.
 
顶部