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是否按下来做处理,
但是还要判断剪切板的内容是否能输入,客户催的急,先备注一下,回头来改。

鄂公网安备 42011102003522号