很喜欢一些软件的按钮:鼠标移进去,就会呈现某种效果(如文字变色、突起显示等等),移出以
后效果就消失。但是自己动手的时候,却发现不像自己想象的那样简单。其中鼠标移入的效果很容
易实现,使用MouseMove事件就可以了,但是移出呢?要知道Windows里并没有鼠标移入移出的消
息呀!(至少我在C++ Builder自带的Windows API里翻了遍也没找着。)以前,我就用了一些取
巧的方法来实现:
1.比如要让一个按钮实现移入变色功能,我就在按钮本身的MouseMove里写一句代码,让它的颜
色改变,然后在它的容器控件(如Form, Panel等等)的MouseMove里写一句代码,让它的颜色还
原。毋需多言,这样的代码肯定是很烦琐的,特别是要控制的控件相当多的时候。
2.在每个按钮的MouseMove事件里设置按钮状态。再使用一个定时器,每隔一段较短的时间检测
状态,根据状态设置颜色。这样做的好处是改变颜色的代码段只有一段(在定时器事件里),而不
像第一种方法一样在许多地方改变颜色。但代码依然是很烦琐的,而且还要浪费一个定时器资源...[ 查看全文 ]