首页 > 其他 > 详细

关于MFC CEdit中仅输入数字时,如何使其不能输入以0开头的非0整数

时间:2014-09-10 12:32:30      阅读:435      评论:0      收藏:0      [点我收藏+]

在MFC中使用CEdit时,设置只允许输入数字,但仍然会出现下图所示“数字200前允许输入0”的问题。

bubuko.com,布布扣

这种情况被认为是用户界面不友好的表现,需要做成:如果已经输入非零整数200,则不允许在200再输入0,如下图。

bubuko.com,布布扣

可以通过以下方法实现:

1. 在DoDataExchange函数中为CEdit控制映射整型变量:

DDX_Text(pDX, IDC_EDIT_RXDELAY,     m_nRxDelay);

2. 在消息映射BEGIN_MESSAGE_MAP...END_MESSAGE_MAP中加入ON_EN_UPDATE事件:

BEGIN_MESSAGE_MAP(CAMC3020Dlg, CDialog)
……
ON_EN_UPDATE(IDC_EDIT_RXDELAY, &CAMC3020Dlg::OnEnUpdateNumEdit)
……
END_MESSAGE_MAP()
3. 在OnEnUpdateNumEdit函数中加入两行代码:

void CAMC3020Dlg::OnEnUpdateNumEdit()
{
    UpdateData(1); // 将CEdit控件中输入的数写入对应的整型变量,这里是m_nRxDelay
    UpdateData(0); // 将变量m_nRxDelay中的数值回写到CEdit控制中
    /* 这两行代码正好可以去除200前面多余的0 */
}




关于MFC CEdit中仅输入数字时,如何使其不能输入以0开头的非0整数

原文:http://blog.csdn.net/skywalker_leo/article/details/39178735

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!