关于delph控件制作的难题!(100分)

  • 主题发起人 主题发起人 Action
  • 开始时间 开始时间
A

Action

Unregistered / Unconfirmed
GUEST, unregistred user!
如何产生一个MouseOver事件和MouseOut事件在delphi制作控件中?
我使用的是WM_MOUSEHOVER and WM_MOUSELEAVE对不对?
做好后控件不能响应..why???
 
不是WM_,是CM_
 
可以看一下DELPHI程序的源码!
 
没有CM_MOUSEHOVER只有CM_MOUSEENTER.
如果用CM_MOUSEENTER那么与之对应的mosueout是什么呢?
 
CM_MOUSEEXIT?
 
用CM_MOUSEEXIT不能通过编译。。。。。。。5555555555555
以WM开头的消息和CM开头的消息有什么区别呀?
 
你自己都写了WM_MOUSELEAVE,那自然就是CM_MOUSELEAVE了。
 
看来大家的口水不少啊! 我也蛮多的! 要不要让斑竹开个灌水区 ??????!
 
CathyEagle 真是口水多,第一次说完不就得了?非要只说个“CM_”。
 
使用CM_MOSUELEAVE之后没有产生任何消息。但CM_MOUSEENTER就产生了消息的
。。我想要的效果是:比如一个button。。当mouse在按钮上时产生一个事件,离开时产生一个事件
第一个事件已经可以用CM_MOUSEENTER完成了。。但离开时的事件却不能产生。。。
 
看看别人已经作好的控件吧,CathyEagle说的应该没错
 
CM and WM有什么区别喃?
 
CM一般是控件发出的消息!
WM一般是窗口消息!
 
那为什么不能在MSDN上查到相关资料(CM_MOUSExxxx)
 
去看看WINAPI的帮助不就知道了吗
 
CM_XXX是Delphi内部的组件通知消息,MSDN当然查不到了。
 
CM ___control Message
 
Action:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
请认真阅读大富翁论坛规则说明 http://www.delphibbs.com/delphibbs/rules.htm
 
其实可以用一个很简单的方法来做。就是你在MOUSEMOVE中定义当MOUSE移到TOP=0
或HEIGHT或LEFT=0或WEIHT的时候就当它是MOUSEOUT了,就行了。我就是这样做的
其实中TOP是MOUSE移动到的X,LEFT是MOUSE移动到的Y,这些都在MOUSEMOVE自带
的参数中。
不过我是定义成
IF X=1 OR X=TOP-1 OR Y=1 OR Y=WEIHT-1 THEN
BEGIN
...
END;
这样就OK了,大不了你不用那外面的一圈就好了。
 
后退
顶部