CEdit限定只能输入十六进制数
通过重载CEdit类,重写OnChar函数实现
void CClrEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if (m_bHex)//设置是否限定只能输入十进制数 { if ((nChar >= 0x30 && nChar <= 0x39) || (nChar >= 'a' && nChar <= 'f') || (nChar >= 'A' && nChar <= 'F') || (nChar == 8)) //Backspace也要能输入 { CEdit::OnChar(nChar, nRepCnt, nFlags); } }else { CEdit::OnChar(nChar, nRepCnt, nFlags); } }
备注:
暂时实现目的,但是快捷键复制粘贴也被拦截,网上查到可以通过判定Ctrl是否按下来做处理,
但是还要判断剪切板的内容是否能输入,客户催的急,先备注一下,回头来改。