【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); }
eaglediao