当前位置: 代码迷 >> 综合 >> [VC++]限制CEdit(Edit Contrl)只能输入数字和小数点
  详细解决方案

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

热度:50   发布时间:2024-01-04 04:32:54.0
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;}}
}