我在onKeyDown(....)中要同时处理两个按键,要如何做?
还有,我在文件中用VK_F,为什么编译器报错:error C2065: 'VK_F' : undeclared identifier.

解决方案 »

  1.   

    if(nChar=='F')
    {}
    if(nChar==VK_UP)
    {}
      

  2.   

    在程序中,这种情况仍然是响应一个键的按下,只不过再处理这个间的按下时要用getkeystate判断另一个要相应的键是否按下,如未按下,就不做处理如过也按下才做要做的事情!
      

  3.   

    1、处理组合键的时候用keyevent()和keybd_event()这两个函数就行了
       我有个简单的例子是处理在同一个对话框中的不同EDIT中切换的时候
       用的,是处理按ENTER键,还有键盘上的上、下键的时候切换到下一个
       EDIT的代码,希望对你有所帮助
       PreTranslateMessage(MSG *pMsg)
       {
            if(pMsg->Message == WM_KEYDOWN){
                switch(pMsg->wParam){
                    case 0x0d://处理ENTER键
                        pMsg->wParam = VK_TAB;
                        break;
                    case VK_DOWN://处理方向键-下
                        pMsg->wParam = VK_TAB;
                        break;
                    case VK_UP://处理方向键-上
                        //由于在具有多个EDIT的对话框中用组合键SHIFT+TAB
                        //是从当前的EDIT切换到上一个EDIT中(焦点),所以下面
                        //是用来处理组合键的
                        keyevent(VK_SHIFT,0,0,O);
                        keybd_event(VK_TAB,0,0,O);
                        keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);
                        keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
                        break;
                }   
            } 
        }
        上面这段代码是在你从CEDIT类派生了自己的类之后,再重载PreTranslateMessage
        来完成的!2、你在你的程序中定义一个变量,用来存放VK_F的键值,最好在程序一开始
       的时候就初始化这个变量,然后在程序的其他地方都用你定义的那个变量
       这样就不会出现楼主说的那种错误了!希望对你有所帮助!
    祝你成功!
      

  4.   

    在resource file中定义VK_F 的键值