我想做个小程序 就像对战类的 要同时响应键盘上两个人的操作 能不能把键盘的消息放到辅助的线程里处理? 如果可以的话又应该怎么做呢 给个例子吧

解决方案 »

  1.   


    一个键盘两个人按 那我应该怎么办?
    我测试用的简易代码是这样的
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN) 
    {
    if(pMsg->wParam == VK_UP)
            {    //第一个人的操作
            }
    if (pMsg->wParam == 'W')
    {
    //第二个人的操作
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    我也在做这样一个游戏,也是这个问题啊...如果不开线程的话,一个人按住键盘的键不放,另一个人按键就没反应了...(就像LZ给出的代码那样)我开了新线程,我想让这个线程控制主窗口(新线程并没有开一个新窗口),..可是.不知道怎么处理消息....
    (我目前的方法是新线程重载run方法,在run方法里面判断消息,根据消息设置不同的函数.....可是感觉这样很傻...)
    麻烦哪位指导一下...楼主如果找到答案了,也麻烦告诉我一下,谢谢了..
      

  3.   

    GetAsyncKeyState 函数可以达到效果 自己搜具体的使用方法了