您的位置:首页 > 其它

【MFC】判断CEdit控件输入内容是否为数字、大写字母、常用汉字

2018-02-02 03:37 453 查看
创建自定义控件class CFilterEdit : public CEdit,控件不能为Unicode编码。加载响应函数OnChar如下:

void CFilterEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

// 允许BackSpace删除操作

if (nChar == 8)

CEdit::OnChar(nChar, nRepCnt, nFlags);

if(nChar <= '9' && nChar >= '0')//数字

CEdit::OnChar(nChar, nRepCnt, nFlags);

else if (nChar <= 'Z' && nChar >= 'A')//大写字母

CEdit::OnChar(nChar, nRepCnt, nFlags);

else if (nChar <= 'z' && nChar >= 'a')//小写字母转大写输出

CEdit::OnChar(nChar - 32, nRepCnt, nFlags);

// OnChar响应汉字输入的方式:划分为高、低字节组合,依次响应

if (IsChineseCharANSI(nChar))

CEdit::OnChar(nChar,
nRepCnt, nFlags);

return;

//CEdit::OnChar(nChar, nRepCnt, nFlags);

}

BOOL IsChineseCharANSI(BYTE inputChar)

{

BOOL bResult = FALSE;

// 依据为国标GB2312-1980的汉字编码方式,常用字编码

if (inputChar >= 0xB0 && inputChar <= 0xF7)

bResult = TRUE;

else if (inputChar >= 0xA1 && inputChar <= 0xFE)

bResult = TRUE;

return bResult;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MFC 控件