首页 > 代码库 > 关于MFC CEdit中仅输入数字时,如何使其不能输入以0开头的非0整数
关于MFC CEdit中仅输入数字时,如何使其不能输入以0开头的非0整数
在MFC中使用CEdit时,设置只允许输入数字,但仍然会出现下图所示“数字200前允许输入0”的问题。
这种情况被认为是用户界面不友好的表现,需要做成:如果已经输入非零整数200,则不允许在200再输入0,如下图。
可以通过以下方法实现:
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整数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。