在MFC中,项目需要对编辑框EditControl的数字输入范围进行限制,主要有以下实现方式,各有优缺点,个人推荐最后一个。
第一种:添加变量
为编辑框添加int、float变量的时候,可以填写最大值与最小值;或者自己添加代码DDV_MinMaxInt(pDX, m_nNum, 1, 65535);
测试发现:
只有在UpdateData(true)更新变量之后,才会对该变量的值进行判断,并弹出对话框提醒。
但仅仅是提醒,关闭提示框之后,错误数据仍会显示在编辑框上。
注意:无UpdateData(true),无判断提示。
第二种:控件的EN_KillFocus事件(失去焦点事件)
当失去焦点时候,UpdateData(true),同步一下窗体和相关变量的值,这样子系统才能正确判断是否超过设定的范围。
代码如下:
void CParaConfigDlg::OnEnKillfocusReceivergain()
{
UpdateData(true);
if ((m_nReceiverGain<0) || (m_nReceiverGain>76))
{
MessageBoxA(_T("数值超过范围!"), _T