btnAddContact.WindowProc:=btnAddContactMouseWnd ;procedure TFrmMain.btnAddContactMouseWnd(var message: TMessage); begin case message.Msg of CM_MOUSELEAVE: begin DM.loadPngImage(btnAddContact,add_contactNew1); Application .HintMouseMessage(btnAddContact,message ); end ; CM_MOUSEENTER: begin DM.loadPngImage(btnAddContact, add_contactNew3); Application .HintMouseMessage(btnAddContact,message ); end; end ; btnAddContact.Dispatch(message); end;
procedure CMMouseEnter( var Msg: TMessage ); message cm_MouseEnter; procedure CMMouseLeave( var Msg: TMessage ); message cm_MouseLeave;用这两个就可以了
这个类不是从TImage继承的,怎样才能发布这2个事件?
给个例子好吗?
begin
case message.Msg of
CM_MOUSELEAVE:
begin
DM.loadPngImage(btnAddContact,add_contactNew1);
Application .HintMouseMessage(btnAddContact,message );
end ;
CM_MOUSEENTER:
begin
DM.loadPngImage(btnAddContact, add_contactNew3);
Application .HintMouseMessage(btnAddContact,message );
end;
end ;
btnAddContact.Dispatch(message);
end;
procedure CMMouseLeave( var Msg: TMessage ); message cm_MouseLeave;用这两个就可以了
cm_MouseEnter和cm_MouseLeave是需要鼠标移到或移出某个界面上才会触发消息的,如果类的对象没有界面怎么能捕获这2个消息?