定义了一个CSliderCtrl对象,
CSliderCtrl m_Slider.
在初始函数里面初始化.在函数OnHScroll捕捉到鼠标点击控件的消息.
但是为啥捕捉到的距离都与实际点击距离相差很多呢.
假设我设置m_Slider.setRange(0,1000);
然后鼠标点在大概结束处,而利用GetPos函数得到的好像大概是200左右.
好像它是一个page一个page的跳的,有没有什么办法解决啊.谢谢各位大侠.
CSliderCtrl m_Slider.
在初始函数里面初始化.在函数OnHScroll捕捉到鼠标点击控件的消息.
但是为啥捕捉到的距离都与实际点击距离相差很多呢.
假设我设置m_Slider.setRange(0,1000);
然后鼠标点在大概结束处,而利用GetPos函数得到的好像大概是200左右.
好像它是一个page一个page的跳的,有没有什么办法解决啊.谢谢各位大侠.
我做的是一个简单播放器,鼠标点击不到位的问题.
2.添加鼠标响应函数OnLButtonDown
3.在CGoodSliderCtrl::OnLButtonDown函数里面添加如下代码:
//得到控件本身矩形大小
CRect mSliderRect;
GetWindowRect(&mSliderRect);
//设置的控件range值
int mMinRg,mMaxRg;
GetRange(mMinRg,mMaxRg); //得到目前的Pos值
DWORD nowPos=GetPos();
//计算鼠标点击后的pos值
DWORD mouseClickpos=(point.x)*(mMaxRg-mMinRg)/mSliderRect.Width();
//设置当前需要滑动的距离
SetPageSize(abs(mouseClickpos-nowPos));
//每次设置新的CSliderCtrl移动page值,可以实现要求。