我想让编辑框中的内容从0.1到1.0以0.1步进变化,当按下Spin的上下按键时,可以从0.1到1.0连续变化,问题在于,比如此时编辑框内容为0.1,按下旋转按钮上键编辑框中内容变为0.2,如果我此时将编辑框内容手动修改为0.5,此时按下Spin上键编辑框中的内容并不变为0.6而是变为0.3,这是为什么呢?而如果我将编辑框中的内容手动修改为5,再次按下Spin上键却变成了0.6
问题出在哪里呢?

解决方案 »

  1.   

    你在spin点击的事件里 先得到edit的内容 然后转化成float在加0.1 在更新edit
      

  2.   

    求可用代码
    在spin点击事件里先updatedata一次获取edit里最新值...
      

  3.   

    求可用代码
    在spin点击事件里先updatedata一次获取edit里最新值...
    目前的问题是,为什么在编辑框中输入0.5后按下Spin上键不能得到0.6,而输入5后按下Spin上键却可以得到0.6,感觉还是Spin控件还是可以接收到编辑框中内容的吧
      

  4.   

    求可用代码
    在spin点击事件里先updatedata一次获取edit里最新值...
    目前的问题是,为什么在编辑框中输入0.5后按下Spin上键不能得到0.6,而输入5后按下Spin上键却可以得到0.6,感觉还是Spin控件还是可以接收到编辑框中内容的吧你真能想   spin有那么聪明?   你有什么关联的动作让spin知道是要去调整edit吗? 还是又告诉spin 0.1的去调整edit?
      

  5.   

    求可用代码
    在spin点击事件里先updatedata一次获取edit里最新值...
    目前的问题是,为什么在编辑框中输入0.5后按下Spin上键不能得到0.6,而输入5后按下Spin上键却可以得到0.6,感觉还是Spin控件还是可以接收到编辑框中内容的吧你真能想   spin有那么聪明?   你有什么关联的动作让spin知道是要去调整edit吗? 还是又告诉spin 0.1的去调整edit?

    void CGuanJianCiFenXiDlg::OnEnChangeEdit2()
    { // TODO:  在此添加控件通知处理程序代码
    CString eData;
    GetDlgItem(IDC_EDIT2)->GetWindowTextA(eData);
    m_nEdit2 = atof((TCHAR *)(LPTSTR)(LPCTSTR)eData);

    void CCommonControlDlg::OnVScroll(UINT nSBCode,UINT nPos,CScrollBar *pScrollBar)
    {
    if(SB_ENDSCROLL==nSBCode)
    return;
    if(pScrollBar->GetDlgCtrlID()==IDC_SPIN)
    {
    CSpinButtonCtrl* pSpin=(CSpinButtonCtrl*)pScrollBar;
    CString strValue;
    strValue.Format("%3.1f",(double)pSpin->GetPos()/10);
    SetDlgItemText(IDC_EDIT2, strValue);
    }
    CDialog::OnVScroll(nSBCode,nPos,pScrollBar);
    }