在Win32 App中捕获SHIFT + TAB和TAB仅按钮按下

大学教师

我有一个Win32应用程序,要在其上捕获键盘上的SHIFT + TAB按钮按下和仅TAB键盘按钮按下。我想在PreTranslateMessage功能中同时捕获它们

这将使我能够基于这些键盘按键进行一些自定义操作。

现在我拥有的代码是

if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_SHIFT)
    {
        m_shiftKey = TRUE;
    }

    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_TAB)
    {
        // DO Something
        m_shiftKey = FALSE;
        return TRUE;
    }

    if (pMsg->message == WM_KEYDOWN && m_shiftKey && pMsg->wParam == VK_TAB) 
    {
        // DO Something
        return TRUE;
    }

我可以在这里按一下TAB键,但是SHIFT + TAB的组合在这里不能正常使用。

有更好的方法吗?

我检查

系统不会为该Shift生成键盘输入消息但是,您可以查询Shift键的当前状态,调用GetKeyState

解决您的问题的一种方法是将您的第一个if子句替换为以下代码:

m_shiftKey = ( ::GetKeyState( VK_SHIFT ) < 0 ) ? TRUE : FALSE;

提示:PreTranslateMessage仅当应用程序尚未进入模态循环时,才执行代码输入。每当打开模态对话框,移动窗口或调整窗口大小或打开菜单时,都会进入模态循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++ Win32中按WM_COMMAND捕获按钮

来自分类Dev

在 WIN32 和 WIN64 中配置浮点单元上下文

来自分类Dev

使用Win32 C ++和钩子从应用程序中的按钮获取文本

来自分类Dev

如何在Win32或MFC中按名称获取字符串资源?

来自分类Dev

如何在Win32或MFC中按名称获取字符串资源?

来自分类Dev

如何获取Win32 C ++应用程序中单选按钮的状态?

来自分类Dev

在Win32中向资源文件添加按钮

来自分类Dev

使用自定义绘图在Win32 API中设置按钮文本颜色

来自分类Dev

在原始Win32中使用C设置按钮图标

来自分类Dev

在Win32中禁用“最小化”,“最大化”,“关闭”按钮

来自分类Dev

使用C在win32中运行时移动按钮的x位置

来自分类Dev

如何在VBScript中在MS Windows 7 64位下引用WIN32对象

来自分类Dev

崩溃调试Win32 App

来自分类Dev

崩溃调试Win32 App

来自分类Dev

适用于Windows 7的C和Win32中的WebSocket客户端

来自分类Dev

Visual Studio 2005中的空项目和Win32控制台项目之间的差异

来自分类Dev

C ++ WIN32在共享内存中创建整数和布尔数组

来自分类Dev

Win32 API中的MK_CONTROL和VK_CONTROL有什么区别?

来自分类Dev

TCameraComponent和TVideoCaptureDevice不在Win32中初始化

来自分类Dev

从Win32按钮删除边框

来自分类Dev

如何禁用按钮-Win32 API

来自分类Dev

从Win32按钮删除边框

来自分类Dev

PAR和Win32 :: Exe

来自分类Dev

捕获Win32 / Opengl中的鼠标移动

来自分类Dev

按钮按下处理Win32 C ++

来自分类Dev

如何在Win32 C ++中的工具栏按钮上动态添加自定义图像?

来自分类Dev

使用Perl和Win32 :: OLE,如何将Word文档中的编号列表转换为纯文本?

来自分类Dev

在窗口标题和消息框中显示错误的语言:Win32应用程序,opengl

来自分类Dev

列出使用Win32 API存储在纯资源库(DLL)中的消息ID和符号名

Related 相关文章

  1. 1

    在C ++ Win32中按WM_COMMAND捕获按钮

  2. 2

    在 WIN32 和 WIN64 中配置浮点单元上下文

  3. 3

    使用Win32 C ++和钩子从应用程序中的按钮获取文本

  4. 4

    如何在Win32或MFC中按名称获取字符串资源?

  5. 5

    如何在Win32或MFC中按名称获取字符串资源?

  6. 6

    如何获取Win32 C ++应用程序中单选按钮的状态?

  7. 7

    在Win32中向资源文件添加按钮

  8. 8

    使用自定义绘图在Win32 API中设置按钮文本颜色

  9. 9

    在原始Win32中使用C设置按钮图标

  10. 10

    在Win32中禁用“最小化”,“最大化”,“关闭”按钮

  11. 11

    使用C在win32中运行时移动按钮的x位置

  12. 12

    如何在VBScript中在MS Windows 7 64位下引用WIN32对象

  13. 13

    崩溃调试Win32 App

  14. 14

    崩溃调试Win32 App

  15. 15

    适用于Windows 7的C和Win32中的WebSocket客户端

  16. 16

    Visual Studio 2005中的空项目和Win32控制台项目之间的差异

  17. 17

    C ++ WIN32在共享内存中创建整数和布尔数组

  18. 18

    Win32 API中的MK_CONTROL和VK_CONTROL有什么区别?

  19. 19

    TCameraComponent和TVideoCaptureDevice不在Win32中初始化

  20. 20

    从Win32按钮删除边框

  21. 21

    如何禁用按钮-Win32 API

  22. 22

    从Win32按钮删除边框

  23. 23

    PAR和Win32 :: Exe

  24. 24

    捕获Win32 / Opengl中的鼠标移动

  25. 25

    按钮按下处理Win32 C ++

  26. 26

    如何在Win32 C ++中的工具栏按钮上动态添加自定义图像?

  27. 27

    使用Perl和Win32 :: OLE,如何将Word文档中的编号列表转换为纯文本?

  28. 28

    在窗口标题和消息框中显示错误的语言:Win32应用程序,opengl

  29. 29

    列出使用Win32 API存储在纯资源库(DLL)中的消息ID和符号名

热门标签

归档