码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:mfc   cedit   

在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整数

标签:mfc   cedit   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!