(VC++)根据WM_CHAR消息获取用户输入字符的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/30 09:01:58
if(pMsg->message==WM_CHAR)
{
char name[32];
GetKeyNameText(pMsg->lParam,name,32);
CString Key=name;
}

//当我在按小键盘上数字键时后会得到下面的结果:
//比如按8,Key 的值为Num 8,我要的是为8
//按9,Key 的值为Num 9,我要的是为9
//按其他键可以正常获取用户输入的字符
如何解决他?还有更好的获取户输入的字符的方法吗?

CString sChar = CHAR(wParam);
干吗要那么麻烦?

char szKeyNameText[255];
ZeroMemory(szKeyNameText,50);
GetKeyNameText(pMsg->lParam,szKeyNameText,50);

加上if语句判断,如果字符串的长度为四,且前三个字母是NUm,则将最后一个字符赋给key

还可以监视键盘下按(Key_Down)