ScrollBar的使用

ScrollBar的使用

设置多个ScrollBar进行参数控制:
ScrollBar的初始化:

    mV1.SetScrollRange(1, 255); //mV1:ScrollBar控件变量1
    mV1.SetScrollPos(20); 
    SetDlgItemInt(IDC_E1, 20);//IDC_E1:Edit控件ID1
    mV2.SetScrollRange(1, 255); //mV2:ScrollBar控件变量2
    mV2.SetScrollPos(30); 
    SetDlgItemInt(IDC_E2, 30);//IDC_E1:Edit控件ID1

主要通过CScrollBar*指针变量pScrollBar来进行不同ScrollBar控件的区分,这样就可以实现多个ScrollBar的独立控制[因为所有的水平ScrollBar控件消息都是通过OnHScroll来分发的]:

void CMy20161220TestControlBarDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    int pos = pScrollBar->GetScrollPos();    // 获取水平滚动条当前位置
    int id = 0; 
    switch (nSBCode)   
    {   
        // 如果向左滚动一列,则pos减1  
    case SB_LINELEFT:   
        pos -= 1;   
        break;   
        // 如果向右滚动一列,则pos加1  
    case SB_LINERIGHT:   
        pos  += 1;   
        break;   
        // 如果向左滚动一页,则pos减10  
    case SB_PAGELEFT:   
        pos -= 10;   
        break;   
        // 如果向右滚动一页,则pos加10  
    case SB_PAGERIGHT:   
        pos  += 10;   
        break;   
        // 如果滚动到最左端,则pos为1  
    case SB_LEFT:   
        pos = 1;   
        break;   
        // 如果滚动到最右端,则pos为100  
    case SB_RIGHT:   
        pos = 255;   
        break;     
        // 如果拖动滚动块滚动到指定位置,则pos赋值为nPos的值  
    case SB_THUMBPOSITION:   
        pos = nPos;   
        break;   
        // 下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,最终确定滚动块位置,并且会直接到default分支,所以在此处设置编辑框中显示数值  
    default:   
        if (pScrollBar == &mV1)
        {
            id = IDC_E1; 
        }else
            id = IDC_E2; 
        SetDlgItemInt(id, pos);  
        return;   
    }  
    // 设置滚动块位置  
    pScrollBar->SetScrollPos(pos);  
    CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值