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

    对话框中的滑块,微调控件都会向OnVScroll() 和OnHScroll()发送消息。
   所以,要想对滑块,微调控件有效控制,就要对这两个函数(改写对话框的这两个函数)进行控制。
    如:
///
//   控制两个独立的滑块
///
    voidCex08aDialog::OnHScroll(UINTnSBCode, 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);
     }
 
///
//   控制微调
///
     voidCex08aDialog::OnVScroll(UINTnSBCode, UINT nPos, CScrollBar* pScrollBar)
     {
          //TODO: 在此添加消息处理程序代码和/或调用默认值
          if( nSBCode== SB_ENDSCROLL )
         {
             return;
         }
          //SpinButton
          if(pScrollBar->GetDlgCtrlID() == IDC_SPIN1 )
         {
             CString strValue;
             strValue.Format( _T("%3.1f"), (double)nPos / 10.0 );
             //((CSpinButtonCtrl*)pScrollBar)->GetBuddy()->SetWindowTextW(strValue );
             CEdit* pEdit =(CEdit*)((CSpinButtonCtrl*)pScrollBar)->GetBuddy();
             pEdit->SetWindowTextW( strValue );
          }

          CDialog::OnVScroll(nSBCode,nPos, pScrollBar);
      }


 

转载于:https://www.cnblogs.com/eaglediao/p/7136503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值