请问vc中有没有专门用于输入金额的控件,只让输入数字,正负号和小数点?还能控制小数点后面的位数?

解决方案 »

  1.   

    不知道。不过CEdit应该可以啊,从CEdit派生一个,添加判断条件就可以了。
      

  2.   

    我现在是用的CEdit,对应的是float类型的变量,但是,我想控制小数点后只能输入两位小数,不知怎么控制?
      

  3.   

    CEdit m_fEdit; //float型变量。UpdateData(TRUE);
    CString str;
    str.Format("%f",m_fEdit);
    int pos=str.ReverseFind ('.')
    str=str.left(pos);
    if(str.GetLength()>2)
       AfxMessageBox("输入的小数超过2位数");
      

  4.   

    同意wangbab(bab) 。
    处理消息ON_EN_CHANGE
      

  5.   

    to : wangbab(bab):
    你的代码意思是让人输入1.23456再作判断,
    而我的需求是在用户输入1.23后就不让再输入数据了,
    就象你把编辑框控件设置成最长为8位,那么在用户输入8位后,第9位是输不进去的是不是要用到    处理消息ON_EN_CHANGE  ?
      

  6.   

    响应ON_EN_CHANGE处理即可。
    CString str;
    CString strShow;
    m_Edit.GetLine(0,str.GetBuffer(255),255); //m_Edit为CEdit类型
    str.ReleaseBuffer();
    strShow=str;int length=str.GetLength();
    int pos=str.ReverseFind ('.');str=str.Right(length-pos-1);
    if(str.GetLength()>2){
       //超过2位数,显示strShow
       strShow=strShow.Left(length-1);
       m_Edit.SetWindowText(strShow);
    }