判断是不是按下上下键,完全不起作用

解决方案 »

  1.   

    你捕捉的是哪个控件或窗口的key down事件?
    如果当前控件或窗口不能输入(比如说一个按钮,或这个没有控件的窗口),按上下键触发在控件之间的切换,而不是触发key down事件
      

  2.   

    void Ctest321Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    switch(nChar)
    {
    case VK_RIGHT:
    AfxMessageBox("test")
    break;
    default: 
                            break; 
            }
      

  3.   

    wm_keydown,如果是dialog,pretranslatemessage()里判断消息
      

  4.   

    pretranslatemessage()好像是在窗体启动后,立即触发,键值还没触发呢
      

  5.   

    这样写:
    BOOL CMy2Dlg::PreTranslateMessage(MSG* pMsg)

    // TODO: 在此添加专用代码和/或调用基类
    if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RIGHT)
    {

    AfxMessageBox(_T("dlfjkl")); }
    return CDialog::PreTranslateMessage(pMsg);
    }
    另外VK_RIGHT是向右的键,不是上下的。