1个回答
展开全部
两种办法:
第一:在控件属性里把number选项勾上,就只能输入数字了。
第二:用编程方法判断输入的字符具体是重载ON_EN_CHANGE消息函数
把以下代码加入到 函数过程里就可以了。
CString csAreaS;
GetDlgItem( IDC_EDIT_ID )->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_ID )->SetWindowText( csTmp );
return;
}
}
}
// 不允许输入数字以外的字符
for ( int Index = 0; Index < nStringLength; Index++ )
{
if ( csAreaS[ Index ] > '9' || csAreaS[ Index ] < '0' )
{
csAreaS = csAreaS.Left( Index ) + csAreaS.Right( csAreaS.GetLength() - Index - 1 );
GetDlgItem( IDC_EDIT_ID )->SetWindowText( csAreaS );
return;
第一:在控件属性里把number选项勾上,就只能输入数字了。
第二:用编程方法判断输入的字符具体是重载ON_EN_CHANGE消息函数
把以下代码加入到 函数过程里就可以了。
CString csAreaS;
GetDlgItem( IDC_EDIT_ID )->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_ID )->SetWindowText( csTmp );
return;
}
}
}
// 不允许输入数字以外的字符
for ( int Index = 0; Index < nStringLength; Index++ )
{
if ( csAreaS[ Index ] > '9' || csAreaS[ Index ] < '0' )
{
csAreaS = csAreaS.Left( Index ) + csAreaS.Right( csAreaS.GetLength() - Index - 1 );
GetDlgItem( IDC_EDIT_ID )->SetWindowText( csAreaS );
return;
追问
谢谢啦,很详细。
我想问一下:
c++ 数组中(已经赋予了初值)如何让用户输入回车结束输入
追答
判断下行到的字符就可以了
回车是 '\0'
就判断下是否有这个字符,如果有说明敲了回车。停止接收字符就OK啦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询