请问哪位高手能够说明一下WM_CHAR的具体用法,以及它和WM_KEYDOWN的区别,
小弟在此谢谢了

解决方案 »

  1.   

    WM_CHAR是键盘所按下的那个字符的响应 可以用来判断是哪个字符的响应(如按下A实现什么功能 按下B 实现什么功能)而 
    WM_KEYDOWN是键盘按下后的消息响应(只要按下键盘都响应) 
      

  2.   

    请问哪位高手能够说明一下WM_CHAR的具体用法,以及它和WM_KEYDOWN的区别, 
    小弟在此谢谢了
      

  3.   

    sprintf(szChar,"char is %d",wParam);
    MessageBox(hwnd,szChar,"weixin",0);wParam这个参数是来自WM_CHAR消息
    这个就可以在消息框中打印字符对应的十进制数.
      

  4.   

    WM_CHAR 只是字母,不包含特殊字符如ctrl等. 
    WM_KEYDOWN则所有都包含.所以ctrl+E选择WM_KEYDOWN 
    WM_CHAR是由WM_KEYDOWN消息translate()之后产生的,然后再发送给窗口过程。比如说按下E键后产生WM_KEYDOWN消息,经过translate()处理后产生变成WM_KEYDOW,WM_CHAR 2 个消息传递给窗口过程产生wm_keydown后,再由translatemessage函数把这个消息翻译为wm_char,最后就是wm_keyup,注意得是wm_char是再两个之间得现在应该明白了一些吧!
      

  5.   

    WM_CHAR是按键消息经过处理后产生的消息,而WM_KEYDOWN则是真正的按键消息。比如你按一下A键,此时产生WM_KEYDOWN消息和WM_KEYUP消息,而我们在消息循环中用TranslateMessage进行转化。