如已经得到WM_CHAR消息,中的VK_A 可是怎么区分大小写呀,(是同时 判断Shift建和
CapsLock吗),还有捕获到的标点符号的怎么显示出来呢?(显示到CEdit控件里)//bow!

解决方案 »

  1.   

    wParam 就是 charater code , 可以是 'A' 或者 'a'char ch = (char)wParam;
      

  2.   

    你处理的不是 WM_CHAR 而是 WM_KEYDOWN 吧? 用 if (GetKeyState(VK_CAPITAL) > 0) // caps lock toggledif (GetKeyState(VK_SHIFT) < 0) // shift pushed判断
      

  3.   

    你也可以用OnKeyDown(),nChar='A',nChar='a'
      

  4.   

    const MSG* pMsg=GetCurrentMessage();
    char text[10];
    GetKeyNameText(pMsg->lParam,text,10);
    //lParam对应WM_KEYDOWN消息的lParam,不能直接用virtual key-code.得到的text就是按键的字符表示,比如按下A,text就是"A";按下逗号,text就是","按下回车,text就是"enter". 至于判断字母的大小写,可以用In355Hz(好象一条狗)说的方法。你为什么要处理WM_KEYDOWN呢? 在WM_CHAR不直接就可以得到按键对应的ascii码,所有的工作都由系统帮你做了,岂不是省事得多?