关于cm_mouseenter,cmmouseleave

private
  anobject:tobject;
    
procedure cmmouseenter(var msg:tmessage); message cm_mouseenter;
    
procedure cmmouseleave(var msg:tmessage); message cm_mouseleave;

procedure tcontrolface1.cmmouseenter(var msg:tmessage);
begin
  anobject:
=tobject(msg.LParam);
   
if anobject<>nil then
    
if (anobject.ClassType=tpanel) then
     
begin
       tpanel(anobject).BevelInner:
=bvraised;
       tpanel(anobject).Color:
=clyellow;
     
end;
end;

procedure tcontrolface1.cmmouseleave(var msg:tmessage);
begin
  anobject:
=tobject(msg.LParam);
   
if anobject<>nil then
    
if (anobject.ClassType=tpanel) then
      
begin
        tpanel(anobject).BevelInner:
=bvnone;
        tpanel(anobject).Color:
=clmoneygreen;
      
end;
end;



  在窗口在放几个tpanel,和一个tgroupbox.

  如果把tpanel放在窗体里,鼠标移到tpanel上有反应(tpanel变成黄色).而如果把tpanel放在

tgroupbox里,则鼠标移到tpanel上就没反应了(tpanel不变色),这是为什么.如何才能让它有反应呢.

CM_XXX是Delphi内部的组件通知消息,MSDN是当然查不到了。

posted @ 2009-07-27 12:28  Handll  阅读(220)  评论(0编辑  收藏  举报