加入了opencv看图的MFC exe工程中不能响应键盘左右上下键??cvWaitKey(0)在作怪

来源:互联网 发布:淘宝订单贷款还款 编辑:程序博客网 时间:2024/05/29 12:24

想实现的功能如下:对图像批处理,首先处理一幅图像后,调用openCV中的cvShowImage()看结果图像,然后按左键或右键对上一幅或下一幅图像处理并看结果图,那如何响应键盘的左右键消息呢???

在看了《MFC键盘响应》后,简单明了嘛,简单!然后如《MFC键盘响应》如此这般地重载了PreTranslateMessage(),可令人崩溃的是我所试的其他按键都可以正常地响应,而我想要的对左右按键的响应却迟迟不能如想象中的响应,再怎么查资料也得不到更多的说法,怎么办呢???此时,我发现如果先按下别的按键,然后再按左键或右键则可以正常响应!!原来是我在调用cvShowImage()显示结果图像后又调用了cvWaitKey(0),而cvWaitKey(0)不响应左右按键(在此处先打个问号?,猜是虚拟按键),在把cvWaitKey(0)屏蔽后一切就正常了。

      PS:因为只是在按下左键或右键时跳至下一幅,因此在PreTranslateMessage()中判断消息类型时,采用

    if(pMsg->message==WM_KEYDOWN)

      代替

     if(pMsg->message>=WM_KEYFIRST && pMsg->message<=WM_KEYLAST) .


    文中所有函数都是随记忆手打,因此可能会有英文错误。

    

    

0 0