MFC中在设置CEdit为Number时 ,不能够接受'.'小数点,通过下面的代码可以
输入'.'以及设置长度,并通过ShowBalloonTip来设置超出长度限制时的提示信息。
使和输入其它字符时提示保持一致。
该代码是重载 CEdit时,写在Onchar中的。
{
CString sText("");
int nLen = 0;
GetWindowText(sText);
nLen = sText.GetLength();
if(nLen > m_nLimitLen)
{
ShowBalloonTip(m_sTipTitle, m_sTipText, TTI_ERROR);
return;
}
//在设置CEdit为数字时,不能接受'.'字符,强制输入
if(((nChar == '.') && (FALSE == sText.IsEmpty()) && (sText.Find('.') < 0)))
{
sText = sText + '.';
SetWindowText(sText);
SetSel(++nLen,nLen);
return;
}
CEdit::OnChar(nChar, nRepCnt, nFlags);
return;
}
else
{
//首先要保证CEdit设置了Number属性,否则此处要调用ShowBalloonTip处理
CEdit::OnChar(nChar, nRepCnt, nFlags);
}