visual c++6.0 编辑框如何设置只输入数字

2024-12-04 18:00:55
推荐回答(4个)
回答1:

  方法如下:

  1. 在VC6.0中,右键点击控件在弹出的菜单上点击“Properties”(属性)

  2. 在弹出的属性对话框中,点击Style(样式)页面

  3. 将右下角的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);
    }

回答2:

如果仅右击编辑框属性,在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;
}

回答3:

右击编辑框属性,style勾上Number就可以了。

回答4:

关联一个数字类型哦