继承一个CEdit类,然后实现WM_CHAR消息
void CLimitEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if (find(m_vecLimitString.begin(), m_vecLimitString.end(), nChar) != m_vecLimitString.end())
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
}
m_vecLimitString 为vector<UINT>。
OnChar中的nChar是字符的ASCII码。
用法示例:
// 设置端口限制输入符
for (UINT u = 48; u < 58; u++)
{
m_editLimit.m_vecLimitString.push_back(u);
}
m_editLimit.m_vecLimitString.push_back(8u); // backkspace
m_editLimit.m_vecLimitString.push_back(44u); // ,