请高手指点,我在视类窗口放置一个slider控件styles:Orientation:vertical(方向垂直)我在void CDspEditorView::OnInitialUpdate()这样初始化m_pSlider1.SetRange(-120,24); //初始化滑动控件的取值范围
m_pSlider1.SetTicFreq(18); //每隔18的单位划一刻度线
                  m_pSlider.SetLineSize(1);
                  m_pSlider1.SetPos(-96);
我在滑块的触发事件里是这样写的void CDspEditorView::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
//float dis_value;
int a;
UpdateData();//更新对话框
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);//0.5*
a=m_pSlider3.GetPos();

m_pdctr3.SetFont(&font,TRUE);
m_pdEite3.Format("%d",a);
font.DeleteObject();
UpdateData(FALSE);

*pResult = 0;
}
发现我每滑动一下滑块显示出的值是一步进为2的变化呢,怎么不是步进为一呢 很纳闷(例如:他变化是这样的0,2,4,6,8,...24,为什么不是0,1,2,3,4,5....24呢?)谢谢 wing高手指点!

解决方案 »

  1.   

    m_pSlider.SetLineSize(1);是否应该为m_pSlider1
    a=m_pSlider3.GetPos();是否应该为m_pSlider1
    也有可能是楼主上传代码有误,检查下吧。
      

  2.   


    哈哈 谢谢你  是的 上传有误,自己改的  有的就没改。上面代码的变量认为是一个就行。
    更正:请高手指点,我在视类窗口放置一个slider控件styles:Orientation:vertical(方向垂直)我在void CDspEditorView::OnInitialUpdate()这样初始化m_pSlider1.SetRange(-120,24); //初始化滑动控件的取值范围
    m_pSlider1.SetTicFreq(18); //每隔18的单位划一刻度线
      m_pSlider1.SetLineSize(1);
      m_pSlider1.SetPos(-96);
    我在滑块的触发事件里是这样写的
    C/C++ code
    void CDspEditorView::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
        // TODO: Add your control notification handler code here
        //float dis_value;
        int a;
        UpdateData();//更新对话框
        LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);//0.5*
        a=m_pSlider1.GetPos();
                                        
        m_pdctr1.SetFont(&font,TRUE);
        m_pdEite1.Format("%d",a);
        font.DeleteObject();                        
        UpdateData(FALSE);                    
        
        *pResult = 0;
    }发现我每滑动一下滑块显示出的值是一步进为2的变化呢,怎么不是步进为一呢 很纳闷(例如:他变化是这样的0,2,4,6,8,...24,为什么不是0,1,2,3,4,5....24呢?)谢谢 wing高手指点!