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);
}