[转][VC++]限制CEdit(Edit Contrl)只能输入数字和小数点

来源:互联网 发布:一元云购源码 犯法吗 编辑:程序博客网 时间:2024/06/03 18:57
void CSettingcategory::OnEnChangeEdit2()
{
CString csAreaS;
GetDlgItem( IDC_EDIT2 )->GetWindowText( csAreaS );
// 只允许输数据
int nStringLength = csAreaS.GetLength();
int nDotCount = 0;
// 点字符不能多于1个
for ( int nIndex = 0; nIndex < nStringLength; nIndex++ )
{
if ( csAreaS[ nIndex ] == '.' )
{
nDotCount++;
if ( nDotCount > 1 )
{
CString csTmp;
csTmp = csAreaS.Left( nIndex );
csTmp += csAreaS.Right( csAreaS.GetLength() - nIndex - 1 );
//csRadius = csRadius.Left( nIndex + 1 ) + csRadius.Right( nStringLength - ( nIndex + 1 ) - 1 );
GetDlgItem( IDC_EDIT2 )->SetWindowText( csTmp );
return;
}
}
}

// 不允许输入数字和点以外的字符
for ( int nIndex = 0; nIndex < nStringLength; nIndex++ )
{
if ( csAreaS[ nIndex ] != '.' && ( csAreaS[ nIndex ] > '9' || csAreaS[ nIndex ] < '0' ) )
{
csAreaS = csAreaS.Left( nIndex ) + csAreaS.Right( csAreaS.GetLength() - nIndex - 1 );
GetDlgItem( IDC_EDIT2 )->SetWindowText( csAreaS );
return;
}
}
}
0 0
原创粉丝点击