根据WM_CHAR消息获取用户输入字符的问题?
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
//按其他键可以正常获取用户输入的字符
如何解决他?还有更好的获取户输入的字符的方法吗?
[解决办法]
WM_CHAR消息的lParam是这么定义的,否则怎么区分到底是哪个键被按下了
获取用户输入的字符应该使用wParam参数
[解决办法]
这个返回就是为了区分是小键盘还是普通的键盘。你可以做一个替换,把所有得到的Num 开头的给替换成普通的。
[解决办法]
key.Format("%c",(TCHAR)wParam);
如果是在wnd里的话用Onchar()