CSliderCtrl類裏相關函數解釋
void CSliderCtrl::SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );//設置滑塊範圍,nMin最小值,nMax最大值
int CSliderCtrl::GetPos( ) const;//獲取滑塊位置
void CSliderCtrl::SetPos( int nPos );//設置滑塊位置
void CSliderCtrl::GetChannelRect( LPRECT lprc ) const;//獲取滑塊通道區域
void CSliderCtrl::GetThumbRect( LPRECT lprc ) const;//獲取滑柄區域
自繪滑塊控件
從CSliderCtrl類派生出子類CNewSliderCtrl,由於滑塊控件不像前幾個控件那樣複雜,所以自繪,就直接在WM_PAINT消息處理函數中進行就行了,給CSliderCtrl添加WM_PAINT消息處理函數,這裏我僅簡單的自繪一下。該函數代碼如下:
void CNewSliderCtrl::OnPaint()
{
CSliderCtrl::OnPaint();
CDC *pDC=GetDC();
CRect rect;
this->GetChannelRect(rect);//獲取滑塊通道區域
pDC->FillSolidRect(rect,RGB(255,0,0));
this->GetThumbRect(rect);//獲取滑柄區域
pDC->FillSolidRect(rect,RGB(0,255,0));
this->ReleaseDC(pDC);
// TODO: Add your message handler code here
// Do not call CSliderCtrl::OnPaint() for painting messages
}
給滑塊控件關聯變量m_SliderCtrl,(類型:CNewCSliderCtrl),再往對話框添加一個編輯框控件用於顯示滑塊數值,關聯變量m_Number(控件類型),接着給滑塊控件添加NM_CUSTOMDRAW消息處理函數,該函數用於實時設置編輯框的值,代碼如下:
void CSeventhDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int Number=m_SliderCtrl.GetPos();
CString str;
str.Format("%d",Number);
m_Number.SetWindowText(str);
*pResult = 0;
}
給對話框初始化函數添加語句:m_SliderCtrl.SetRange(0,100); 設置滑塊數值範圍
運行效果如下:
http://hi.baidu.com/3582077/item/a8389c33517c44169cc65e0a