您的位置:知蚁博客 » 程序设计 » 在VC的edit控件里输入小数的方法

在VC的edit控件里输入小数的方法

作者: 发布时间:2011-04-09 分类:程序设计 标签: 4,438人浏览

  用过VC的都知道,VC中的edit控件可以通过属性设置为只允许输入数字,但是只允许输入0-9的数字,不能够输入小数,因此要实现在vc的edit控件中输入小数,需要设置edit控件的属性为文本类型。

  接下来我们要做的就是控制edit控件中输入的字符,允许输入的字符为0-9的阿拉伯数字、小数点以及退格,其他的都需要禁止。这个功能实现起来也比较简单,在Dialog类中的PreTranslateMessage函数中对消息进行预处理即可,在vc6.0中可以通过类向导来重载PreTranslateMessage函数,具体参见下图。

  具体的修改参加下面的代码,使用下面代码需要保证,对话框中有一个名为IDC_EDIT1的edit控件,而且该控件绑定了一个CEdit类型的变量。下面代码中包括非法字符的过滤以及对小数点进行了判断,只允许一个小数点的存在。

JavaScript语言: 知蚁博客 程序设计
BOOL CDepositCalculatorDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_CHAR // 字符消息
&& (pMsg->hwnd == m_ctlEdit1.m_hWnd) // m_ctlEdit1为与IDC_EDIT1对应的控件变量
)
{
//只允许输入一个小数点
if(pMsg->wParam == ‘.’)
{
CString str;
int nPos = 0;
GetDlgItemText(IDC_EDIT1, str); // 获取edit中文本
nPos = str.Find(‘.’); // 查找.的位置
if(nPos>=0)
{
return TRUE; // 如果存在. 返回,即不再允许.输入
}
}

//只允许输入. 数字 和退格
if(pMsg->wParam!=‘.’ && (pMsg->wParam>’9′ || pMsg->wParam<’0′) && pMsg->wParam!=‘\b’)
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}

原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/46

相关文章

2访客评论 ,博主回复2

  1. 关注你哦,不错,嘿嘿。;-)

    BlueHost05-31 22:01 回复
    • 多谢支持,常来逛哦~

      知蚁05-31 22:21 回复
  2. 你好,能解释一下“m_ctlEdit1.m_hWnd”中m_hWnd是怎么获得的吗?谢谢

    会飞的鱼06-20 09:50 回复
    • m_ctlEdit1是一个CEdit类型的变量,该变量其中的一个成员就是m_hWnd,你要做的就是给文本框控件绑定一个CEdit类型的变量。这个我应该有示例程序的,我回去给你找找去。

      知蚁06-20 17:37 回复

我来说说

(必须)

(必须,保密)

你确定你已经看过文章了?
取消

无觅相关文章插件,快速提升流量