visual c++6.0 编辑框如何设置只输入数字
我用visualc++6.0要编一个计算软件,想要使edit控件只能输入数字,请问哪位大侠给以指导...
我用visual c++6.0要编一个计算软件,想要使edit控件只能输入数字,请问哪位大侠给以指导
展开
2016-01-03 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
方法如下:
在VC6.0中,右键点击控件在弹出的菜单上点击“Properties”(属性)
在弹出的属性对话框中,点击Style(样式)页面
将右下角的Number(数字)选中即可。
但是这样做后,会发现,小数点也没法输入了,也就是说只能输入整数了。那么还想输入小数点,需要从CEdit派生一个新的类,重载WM_CHAR消息,在OnChar()中添加对输入字符的判断,不是想要的字符直接返回就可以了
例如,只能输入小数:
void CXXXEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(::isdigit(nChar)||(nChar=='.'))
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
展开全部
如果仅右击编辑框属性,在style勾上Number属性的话, 是不能输入小数点的
允许输入数字和小数点
下面的代码放在OnEnChangeEditXXX()函数中,可实现此功能。
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;
}
允许输入数字和小数点
下面的代码放在OnEnChangeEditXXX()函数中,可实现此功能。
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
右击编辑框属性,style勾上Number就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关联一个数字类型哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询