请问下列字符是代表那些键?还有键盘的键怎样做转换才能得到下列的字符? 0x78,0x79,0x7a,0x7b,0x6a,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 都是ASCII字符。你可以在MSDN中输入“ASCII”然后就可以看到他们对应的字符了! 还有键盘的键怎样做转换才能得到下列的字符? =============================只有当按键所对应的ASCII码在0-127之间时才触发WM_CHAR消息,并进入OnChar消息函数!afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );直接使用这些字符作为判断就行了,因为UINT nChar,定义为UINT,就是ASCII字符码! //把十六进制的字符转化成数字,在char szText[] 写入那些字符串,pBuffer就会解析成字符 ^o^int HexToInt(char* pToken){ UINT nIndex; int nDec[2]; //转化字符成ASCII for(nIndex = 0;nIndex < 2;nIndex ++) { nDec[nIndex] = pToken[nIndex]; } //转化小写的ASCII成大写的ASCII a->A for(nIndex = 0;nIndex < 2;nIndex ++) { if(nDec[nIndex] > 97) { nDec[nIndex] -= 32; } } //得到ASCII的真正数值 for(nIndex = 0;nIndex < 2;nIndex ++) { //如果是A-F if(nDec[nIndex] > 57) { nDec[nIndex] -= 55; } //如果是0-9 else { nDec[nIndex] -= 48; } } return nDec[0]*16 + nDec[1];}void test(char* pszText) { char szDelimit[] = ","; char *pToken = NULL; UINT nBufferLen = strlen(szText)/3 + 2; char *pBuffer = new char[nBufferLen]; pToken = strtok(pszText,szDelimit); for(UINT nIndex = 0;pToken != NULL;nIndex++) { pBuffer[nIndex] = HexToInt(pToken); pToken = strtok(NULL,szDelimit); } pBuffer[nIndex+1] = '\0'; AfxMessageBox(pBuffer); delete[] pBuffer;} 具体信息参考:http://www.vczx.com/article/show.php?id=823 MFC webbrowser使用第三方插件XunleiBHO7.2.10.3694.dll,当本地已安装迅雷会产生冲突,怎么解决? 如何实现动态截屏 关于获得JPG图像 尺寸的问题 往不同的类传递参数? 新鲜问题,翻遍CSDN还是要发贴才有可能解决! usb传输 100分求助!如何去掉MFC做出来的窗口的边框! 那里有用C或C++编写的计算方差等函数啊 大神小神们看看我的帖子控件绘图在IE里面的问题 RegOpenKeyEx读取注册表 切分窗口后怎么控制子窗口上的TreeView? 一个奇难的问题 求助大家!!!
=============================
只有当按键所对应的ASCII码在0-127之间时才触发WM_CHAR消息,并进入OnChar消息函数!
afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags );
直接使用这些字符作为判断就行了,因为UINT nChar,定义为UINT,就是ASCII字符码!
{
UINT nIndex;
int nDec[2];
//转化字符成ASCII
for(nIndex = 0;nIndex < 2;nIndex ++)
{
nDec[nIndex] = pToken[nIndex];
} //转化小写的ASCII成大写的ASCII a->A
for(nIndex = 0;nIndex < 2;nIndex ++)
{
if(nDec[nIndex] > 97)
{
nDec[nIndex] -= 32;
}
} //得到ASCII的真正数值
for(nIndex = 0;nIndex < 2;nIndex ++)
{
//如果是A-F
if(nDec[nIndex] > 57)
{
nDec[nIndex] -= 55;
}
//如果是0-9
else
{
nDec[nIndex] -= 48;
}
} return nDec[0]*16 + nDec[1];
}void test(char* pszText)
{
char szDelimit[] = ",";
char *pToken = NULL;
UINT nBufferLen = strlen(szText)/3 + 2;
char *pBuffer = new char[nBufferLen]; pToken = strtok(pszText,szDelimit);
for(UINT nIndex = 0;pToken != NULL;nIndex++)
{
pBuffer[nIndex] = HexToInt(pToken);
pToken = strtok(NULL,szDelimit);
}
pBuffer[nIndex+1] = '\0'; AfxMessageBox(pBuffer); delete[] pBuffer;
}
http://www.vczx.com/article/show.php?id=823