xuejianhui

导航

MFC实战演练----滑动条(CSliderCtrl) + 文本框(EditCtrl)

目的:滑动 CSliderCtrl 降幅度显示到 EditCtrl 上。

步骤:
1>在页面上分别创建一个控件,CSliderCtrl的ID为:IDC_SLIDER_INPUT;EditCtrl的ID为:IDC_EDIT_OUTPUT。
2>分别给这两个控件添加变量,CSliderCtrl为:CSliderCtrl m_Input; EditCtrl为:int m_Output。
3>添加以下代码:

  3.1>在.h文件中,添加到 protected 下面:

afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);

  3.2>在.cpp文件中,添加到函数队列下面:

ON_WM_HSCROLL()

  3.3>在初始化函数 OnInitDialog() 下面添加如下代码赋初始值:

1 m_Input.SetRange(0, 200, TRUE);     //设置滑动范围
2 m_Input.SetPos(100);                //设置初始位置
3 m_Output = m_Input.GetPos();        //显示初始数值

  3.4>在.cpp文件中,添加如下函数:

 1 //CMfcStudyDlgDlg为窗口类名
 2 void CMfcStudyDlgDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
 3 {
 4     // TODO: Add your message handler code here and/or call default
 5     if(pScrollBar != NULL )
 6     {
 7         // 强制转换成CSliderCtrl
 8         CSliderCtrl* pSlider = (CSliderCtrl*)pScrollBar;
 9         // 根据CSliderCtrl ID 来判断是哪一个CSliderCtrl
10         if(pSlider->GetDlgCtrlID() == IDC_SLIDER_INPUT)
11         {
12             //方法一:
13             long v = pSlider->GetPos();
14             m_Output = v;
15 
16             //方法二:
17             // nPos就是此时滑杆的位置,显示到 CEdit 就可以了
18             char temp[30];
19             sprintf_s(temp, 30, "%d", nPos);
20             GetDlgItem(IDC_EDIT_OUTPUT)->SetWindowText(temp);
21 
22             //刷新页面数据
23             UpdateData(FALSE);
24         }
25     }
26 }

 

-------------------------------------------------------------------------------------------------------------------

 

【附】:在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:

主要要方法有:
1、设置、取得滑动范围:

void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); 
void GetRange( int& nMin, int& nMax ) const;

2、设置、取得按下左右箭头滑动间隔:

int SetLineSize( int nSize ); 
int GetLineSize( ) const;

3、设置、取得按下PgUp、PgDown时滑动间隔:

int SetPageSize( int nSize ); 
int GetPageSize( ) const;

4、设置、取得滑块位置:

void SetPos( int nPos ); 
int GetPos( ) const;

5、设置滑动条刻度的频度:

void SetTicFreq( int nFreq );

 

更多理论:

http://www.cnblogs.com/szflyming/articles/246010.html

 

 

posted on 2012-09-29 15:46  xuejianhui  阅读(601)  评论(0编辑  收藏  举报