现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

VC控件 滑动条Slider

2013-01-09 21:51 工业·编程 ⁄ 共 1278字 ⁄ 字号 暂无评论

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

6.设置移动滑块时触发的回调事件函数:

选择Slider的“事件”然后选择第一个过程(NM_CUSTOMDRAW)后加入触发的执行代码.

实例:

在对话框中放一个Slider控件,添加相应的Ctrl型变量为m_slider。在对话框初始化函数OnInitDialog()中添加:

BOOL CLlk_wgDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    /*
        ... ...
    */

    // TODO: Add extra initialization here
    m_slider.SetRange(1,3000);    // 设置滑动范围    (单位:毫秒).
    m_slider.SetTicFreq(300);    // 每10个单位画一刻度.
    m_slider.SetPos(1000);        // 设置默认单消间隔时间为1秒.
   
    return TRUE;  // return TRUE  unless you set the focus to a control
}

填充 触发消息: NM_CUSTOMDRAW 对应的响应函数:

void CLlk_wgDlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult)
{
    // TODO: Add your control notification handler code here

    UpdateData(true);

    float show_time;
    CString pTempInfo;

    show_time=m_slider.GetPos();
    show_time/=1000;

    pTempInfo.Format((" %5.3f 秒"),show_time);    // 浮点数输出5个有效位,其中3个小数位.
    m_TimerShow.SetWindowText(pTempInfo);
    pTempInfo.ReleaseBuffer();
    UpdateData(false);

    *pResult = 0;
}

其中m_TimerShow为一个静态文本框的控件变量,用来显示滑动条所处的位置。

给我留言

留言无头像?