首先自己写一个MySlider类。。该类继承 CSliderCtrl类。。
MySlider类响应LButtonDown消息来实现鼠标单击定位。。。
void MySlider::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CSliderCtrl::OnLButtonDown(nFlags, point);
CRect rectClient,rectChannel;
GetClientRect(rectClient);
GetChannelRect(rectChannel);
int nMax = 0;
int nMin = 0;
GetRange(nMin,nMax);
int nPos =
(nMax - nMin)*(point.x - rectClient.left - rectChannel.left)/(rectChannel.right - rectChannel.left);
SetPos(nPos);
}
在主界面中:(***Dlg.h)
添加:#include "MySlider.h"
MySlider m_MySlider;
(***Dlg.cpp) 关联变量。。。
void CCSliderPosDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCSliderPosDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
DDX_Control(pDX,IDC_SLIDER1,m_MySlider);
}
OnInitDialog()
{
m_MySlider.SetRange(0,100); //设置Slider的范围。。。
}

本文介绍了如何创建一个自定义的MySlider类,该类继承自CSliderCtrl,通过响应LButtonDown消息,实现用户鼠标单击时滑块自动定位到点击位置的功能。在主界面中,通过添加包含头文件、实例化对象并关联变量,设置滑块的范围为0到100。
最低0.47元/天 解锁文章
4335

被折叠的 条评论
为什么被折叠?



