CSpinButtonCtrl *pSpin = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_SHOT);
pSpin->SetRange32(0,99999);
pSpin->SetPos(56789);
可是我的edit框里显示0,
超过32767就不能在加1,因为edit内要求的数字范围其实是ULONG范围的,我该怎么解决呢?
多谢!

解决方案 »

  1.   

    ULONG只能32767?
    不是吧?ULONG可以大到4294967295大概是因为pSpin->SetPos,因为vc.net里是有SetPos32这个函数的。
      

  2.   

    是因为pSpin->SetPos
    可是我是用VC编的,该怎么办呢?
      

  3.   

    CSpinButtonCtrl *pSpin = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_SHOT);
    pSpin->SetRange32(0,99999);
    pSpin->SetPos(56789);
    pSpin->Setbuddy(GetDlgItem(IDC_EDT_YOUR));不知我是否正确理解了你的意思?
      

  4.   

    我看不要与那个EDIT自动关联,自己处理。设那个EDIT对应的ULONG型变量是 ;
    添加SPIN的UDN_DELTAPOS消息处理
    void CYourDlg::OnDeltaposYourSpin(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
             UpdateData();
             m_dwData += pNMUpDown->iDelta;//还要加几句判断使得m_dwData的值合理,比如m_dwData不能为负,-1对应的将是一个很大的数。
             
             UpdateData(FALSE);
    *pResult = 0;
    }