CM_MOUSEENTER
CM_MOUSELEAVE
必须自己继承控件,因为这不是Windows的标准消息。
在Form中声明两个函数:
procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER;
procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE;
实现部分如下:
procedure Form.CMMouseEnter(var msg:tmessage);
var
obj:TObject;
begin
obj:=Tobject(msg.lParam);//鼠标所在的控件
if obj<>nil then
begin
//确定控件的类型
//你的处理
end;
end;
procedure Form.CMMouseLeave(var msg:tmessage);
var
obj:TObject;
begin
obj:=Tobject(msg.lParam);//鼠标所在的控件
if obj<>nil then
begin
//确定控件的类型
//你的处理
end;
end;
---------------------------------------
procedure TForm1.cmmouseenter(var msg:tmessage);
begin
if msg.LParam=integer(button1) then
showmessage('fsdkfs');
end;