【MFC 中】关于对话框中的OnVScroll() 和 OnHScroll()函数

本文介绍如何通过重写OnHScroll()和OnVScroll()函数来控制滑块和微调控件的行为。具体展示了如何根据不同滑块的位置更新对应的静态文本显示,并对微调控件进行了特殊处理。
   对话框中的滑块,微调控件都会向OnVScroll() 和 OnHScroll()发送消息。
    所以,要想对滑块,微调控件有效控制,就要对这两个函数(改写对话框的这两个函数)进行控制。
    如:
///////////////////////////////////////////////////////////////////////////////////////////////////
//   控制两个独立的滑块
///////////////////////////////////////////////////////////////////////////////////////////////////
    void Cex08aDialog::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        //Slider
        CSliderCtrl* pSlider = (CSliderCtrl*)pScrollBar;
        CString strText;
       
        switch( pSlider->GetDlgCtrlID() )
        {
            //Slider1
            case IDC_SLIDER1:
                    strText.Format( _T("%d"), pSlider->GetPos() );
                    SetDlgItemText( IDC_STATIC_SLIDER1, strText );
                    break;
            //Slider2
            case IDC_SLIDER2:
                    strText.Format( _T("%3.1f"), dValue[pSlider->GetPos()] );
                    SetDlgItemText( IDC_STATIC_SLIDER2, strText );
                    break;
            //dValue[6] = {1.5, 3.0, 4.5, 6.0, 7.5, 8.0};
         }
         CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
     }
 
///////////////////////////////////////////////////////////////////////////////////////////////////
//   控制微调
///////////////////////////////////////////////////////////////////////////////////////////////////
     void Cex08aDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
     {
          // TODO: 在此添加消息处理程序代码和/或调用默认值
          if( nSBCode == SB_ENDSCROLL )
          {
              return;
          }
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值