环境:XP VC6.0多文档
在View类中响应 PreTranslateMessage OnKeydown Onchar 3个消息
按下字母‘p’(小写),
PreTranslateMessage 能够捕捉到 WM_KEYDOWN WM_CHAR两个消息,
OnKeydown 也能收到
Onchar 就收不到了(程序就没有走进OnChar函数)我是想知道 到底 在哪里 'p'被扣留了,为什么不调用 OnChar() 的。
帮我猜测一下也好啊,现在我都迷茫了。

解决方案 »

  1.   

    其他字符按下,能收到WM_CHAR消息不?
      

  2.   


    其他字符都没问题,能收到WM_CHAR消息,只有'p'不行.
      

  3.   

    看看 p 是不是被别的地方先响应了。
    看看是不是有钩子勾住了p。
    或者p是不是一个加速键?
      

  4.   

    是不是有个Menu 吧p做热键了?
      

  5.   

    InEdit : public CEdit
    在InEdit框中分别按下 o 和 p//'o'就能调用OnChar()函数
    #### InEdit::OnKeyDown O, ASCII: 79#### InEdit::PreTranslateMessage o, ASCII: 111#### InEdit::OnChar o, ASCII: 111#### InEdit::OnKeyUp O, ASCII: 79//'p'就不能调用OnChar()函数
    #### InEdit::OnKeyDown P, ASCII: 80#### InEdit::PreTranslateMessage p, ASCII: 112#### InEdit::OnKeyUp P, ASCII: 80