xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2591回复:8

用VC建的MFC工程,程序里用什么函数读键盘

楼主#
更多 发布于:2005-07-01 16:40
  想在一个循环里读键盘,当指定键(想用ESC)按下后推出键盘,不知用那个函数可以读键盘,哪位大虾指点。我用MSDN查半天也找不到,用GetKeyStatus(--)也不行
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-05 09:37
谢谢一楼大虾。我还是有点不明白怎么做,我做的程序是PCI数据采集系统的程序,在循环里面等待外部触发,如果触发就进行数据采集。这样做的话如果没有外部触发,程序就会一直在循环里面。所以要用键盘退出。我重载了PreTranslateMessage(MSG* pMsg) 函数,但是好像当程序执行到循环里面后就进入不到PreTranslateMessage(MSG* pMsg) 函数里了。

    
BOOL CSampleView::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
      
  switch (pMsg->message)
  {
  case WM_KEYDOWN:
    switch (pMsg->wParam)
    {
    case VK_RETURN://回车
        triger=0;
        break;
    default:
        OnKeyDown(pMsg->wParam, LOWORD(pMsg->lParam), HIWORD(pMsg->lParam));
        break;
    }
    break;
  default:
          return CView::PreTranslateMessage(pMsg);
    break;
  }

return TRUE;


}

          
               while(triger)
       {  
                      //读端口,看是否有外部触发,若有外部触发,退出循环,进行数据采集
             in_port=*(U32*)(port+0x00);
             if(in_port&0x01==0)
            {
                            triger=0;
                   *(U32*)(port+0x0a)=0x01;
             }        
          
         //判断有无ESC (这里用ENTER) 键按下,若按下则退出循环。              
       }
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-05 09:39
xx_focus大虾,可能我没有理解你的意思。我VC刚入门,很多不懂的。
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-08-09 08:34
还望大虾们解释一下
游客

返回顶部