switch(nChar)
{
  case VK_LEFT:  //<--
    break;
  case VK_UP:  //^|
    break;
  case VK_RIGHT:  //-->
    break;
  case VK_DOWN:  // 
   break;
}

解决方案 »

  1.   

    获取键盘消息用OnKeyDown太不灵敏了,特别是在游戏里面用GetAsyncKeyState好一些,如下if(GetAsyncKeyState(VK_LEFT)!=NULL) { ... }
    else if(GetAsyncKeyState(VK_UP)!=NULL) { ... }
    else if(GetAsyncKeyState(VK_RIGHT)!=NULL) { ... }
    else if(GetAsyncKeyState(VK_DOWN)!=NULL) { ... }
     
      

  2.   

    两种方案的程序结构不同
    第一种适用在标准的消息循环中,一般情况下用它就可以
    第二种在游戏的循环里调用,可以减少消息队列的延迟
    游戏里如果要效果好,还是用DirectX
      

  3.   

    rchu,谢谢,已经解决了。希望以后可以多得到你们的帮助……