Fool's Garden

Talking about Windows Mobile and Embedded gadgets...Web counter

导航

实现精确定位的Slider Bar

Posted on 2004-09-06 17:14  Levins Dai  阅读(3200)  评论(0)    收藏  举报

用过MFC里面的CSliderCtrl就知道,这个Slider Bar是无法跟随Mouse Click而精确定位滑块到鼠标的位置的。事实上Windows里面标准的Slider Bar都是有这样的特性(可以试试Volume Tune),我猜缺省的Slider Bar实现采用的是类似于Scroll Bar的方式,即点击一下就先前Scroll,而不是直接把滑块定位到鼠标的位置。

如果希望实现一个精确定位的Slider(就像Media Player或者foobar里面的滑动条的效果),做法其实也很简单,只需要响应LButtonDown, MouseMove, LButtonUp几个消息,获得鼠标指针然后计算出对应的Slider Position就ok了。稍微有点麻烦的地方是需要向Parent Window发送正确的TB Code,CodeProject上的这个文章给了一个很好的参考:

Improved mouse click handling for the slider control

估计现在已经很少人使用MFC来写Win32 GUI了,正好现在正在做这样的一个项目,慢慢的会post一些小tips和大家分享,:-)