读书人

根据WM_CHAR消息获取用户输入字符的有

发布时间: 2014-02-22 08:46:30 作者: rapoo

根据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()

读书人网 >VC/MFC

热点推荐