在下面代码中:
case WM_KEYDOWN: //按键按下时更新键盘缓冲
if((wParam >= 0) && (wParam <= 255)) //按键是否合法
{
window->keys[wParam] = true; //设相应键为true;
return 0;
}
break;
case WM_KEYUP:
if((wParam >= 0) && (wParam <= 255))
{
window->keys[wParam] = false;
return 0;
}我跟踪过程序,在按下任意一个字母键时,wParam的值均为229,而按下控制键时的值有改变,请问各位我的代码在哪里出问题了吗?或者是我方法用错了?
case WM_KEYDOWN: //按键按下时更新键盘缓冲
if((wParam >= 0) && (wParam <= 255)) //按键是否合法
{
window->keys[wParam] = true; //设相应键为true;
return 0;
}
break;
case WM_KEYUP:
if((wParam >= 0) && (wParam <= 255))
{
window->keys[wParam] = false;
return 0;
}我跟踪过程序,在按下任意一个字母键时,wParam的值均为229,而按下控制键时的值有改变,请问各位我的代码在哪里出问题了吗?或者是我方法用错了?
KEY_down需要字母的键码.比较麻烦.我建议你采用WM_CHAR:
然后就比如 CASE 'A' CASE 'B'这样.
CASE VK_F1 :
如果用WM_CHAR可能不行,我没试过,因为这个是字符消息。
建议你去看“WINDOWS程序设计”这本书,说的很详细。“处理按键和字符消息的基本规则是:如果需要读取输入到窗口的键盘字符,那么您可以处理WM_CHAR消息。如果需要读取光标键、功能键、Delete、Insert、Shift、Ctrl以及Alt键,那么您可以处理WM_KEYDOWN消息。“---------------<<WINDOWS程序设计>>