您的位置:首页 > 编程语言 > C语言/C++

VC++学习之——Edit只能输入数字和小数点

2014-02-20 13:11 309 查看
有时候我们在Edit框中需要对用户的输入进行限制,允许输入数字和小数点。下面的代码放在OnEnChangeEditXXX()函数中,可实现此功能。

(如果只允许输入正整数,那么直接把空间的属性“Number”设为True就可以了,不需要在添加一下代码。)

CString csAreaS;

GetDlgItem( IDC_EDIT_AREA_S )->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_EDIT_AREA_S )->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_EDIT_AREA_S )->SetWindowText( csAreaS );

return;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: