html滑块控件的使用方法?
新建一个对话框程序,添加一个Slider Control控件和静态文本控件如下:
滑块控件:IDC_SLIDER1,关联控件变量:m_slider
设置滑块控件属性来显示刻度,Auto Ticks:True;Tick Marks:True
静态文本控件:IDC_static_VALUE,关联控件变量m_staticValue
在OnInitDialog()中初始化滑块控件:
m_slider.SetRange(1,50); //设置范围
m_slider.SetPos(2); //设置初始位置
CString str;
str.Format("%d",m_slider.GetPos());
m_staticValue.SetWindowText(str);
m_slider.SetPageSize(3); //设置在控件上单击时滑块移动步长
m_slider.SetTicFreq(5); //设置刻度间隔
添加消息响应NM_CUSTOMDRAW,以便用户在移动滑块时做出反应
void CMoveTestDlg::OnCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
CString str;
str.Format("%d",m_slider.GetPos()); //获取滑块位置值
m_staticValue.SetWindowTextA(str);
*pResult = 0;
}
若想要通过键盘左右方向键控制滑块移动,则重写PreTranslateMessage虚函数
BOOL CMoveTestDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_KEYDOWN ) //如果有键按下
{
int nValue=m_slider.GetPos();
CString str;
//判断具体键
switch( pMsg->wParam )
{
case VK_LEFT://按下左键
nValue-=1; //值减小1
m_slider.SetPos(nValue); //移动滑块
str.Format("%d",nValue);
m_staticValue.SetWindowTextA(str); //设置静态文本
break;
case VK_RIGHT://按下右键
nValue+=1; //值增大1
m_slider.SetPos(nValue); //移动滑块
str.Format("%d",nValue);
m_staticValue.SetWindowTextA(str); //设置静态文本
break;
default:
break;
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有