今天的任务是定制一个苹果风格的滚动条类,开始想从CScrollBar继承,却找不到自绘方法,到网上搜,也找不到资料,只找到一个利用Win32 API钩子的方法,在98下还不兼容,一个滚动条而已,用不着出动钩子这么大手笔吧?只好自已动手,直接从CWin继承,从空白做起,自定义一个滚动条类CUScrollBar,并全部实现CScrollBar中的所有成员函数和消息传递方式,这样,除了基类不同,其他的调用方法和说明就同CScrollBar完全一致,连写文档注释都省了,直接看MSDN就行。于是,一个漂亮的滚动条就出现在了我的眼前...
?许多时候,利用已有的控件或代码来自定义以符合自已的需求,往往存在各种各样的限制和缺陷,与其花大量时间来理解别人的设计和避免各种莫名其妙未知的问题,不如自已从新写一个,你会发现所用的时间更少,效果更好。由于思路和代码都是你的,你可以随心所欲地满足各种各样的需求,而不用将就原来的设计限制。这大概就是软件的复用性说了很久,但成效一直不高的原因吧,毕竟软件不同建筑行业,是不能将就着现有的材料来设计的,而是反过来,在可能的情况下,所有的材料都应该围绕着应用来改变。就拿这个滚动条来说,你不能对用户说Window的滚动条都是灰色的,你就将就着用吧,而应该制作一个更好用的ScrollBar给用户,我认为这样的软件才会有生命力。