您的位置:首页 > 其它

MFC 编辑框 限制数字输入

2014-03-17 18:20 706 查看
重写虚函数PreTranslateMessage。

BOOL CClassDlg::PreTranslateMessage(MSG* pMsg)

{
// TODO: 在此添加专用代码和/或调用基类
//屏蔽小数输入框输入其他字符
if(pMsg->message == WM_CHAR)

//IDC_UPPER_LIMIT和IDC_LOWER_LIMIT为编辑框ID
CEdit* pEdit1 = (CEdit*)GetDlgItem(IDC_UPPER_LIMIT);
CEdit* pEdit2 = (CEdit*)GetDlgItem(IDC_LOWER_LIMIT);
//pMsg->hwnd此时为接收WM_CHAR的窗口句柄,即看当前输入焦点是否为上面两个
//编辑框
if(pMsg->hwnd == pEdit1->m_hWnd || pMsg->hwnd == pEdit2->m_hWnd)
{
//如果是数字或小数点'.'或退格键的ascii,则按默认的方式处理,
//此时会输入到编辑框
if((pMsg->wParam >= '0' && pMsg->wParam <= '9') ||
pMsg->wParam == '\b' )
{
return CDialogEx::PreTranslateMessage(pMsg);
}
else

//如果是其他的屏蔽字符,则不处理,直接返回,就不会输入到编辑框
return TRUE;
}
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MFC 编辑框 限制