1.VC++ 自带的编辑框,来实现小数输入时,会出现很多不方便。。
2.子类化CEdit。来实现编辑框,输入小数!!
3 输入小数问题
3.1 第一位是0时,第二位必须是 点 不能输入 0 例如:000,01.
3.2 有 点 输入时,不能输入第二个 点 例如:输入多个点
void CEditEx::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((nChar >= '0' && nChar <= '9')|| nChar == '.'||
nChar == VK_BACK || nChar == VK_DELETE) //msdn的virtual key
{
CString str;
GetWindowText(str);
if (str.GetLength() == 0)
{
if(nChar == '.')
return;
}
else if (str.Find(_T("."),0) > -1)
{
if (nChar == '.')
return;
}
else if (str.GetAt(0) == '0')
{
if (nChar == '.')
{
CEdit::OnChar(nChar,nRepCnt,nFlags);
return;
}
else if (nChar == '0')
{
return;
}
}
CEdit::OnChar(nChar,nRepCnt,nFlags);
}
}
本程序暂时,实现了以上功能。。。如果有错误请打击指点!!!