VC MFC滑塊(CSliderCtrl)控件

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章