基于MFC的键盘响应(热键触发事件)

这篇具有很好参考价值的文章主要介绍了基于MFC的键盘响应(热键触发事件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于微软MFC框架,设置热键响应:

通过输入CTRL+G组合按键完成文件选择框弹出:
目标:
按下CTRL+G,弹出文件选择框
过程:文章来源地址https://www.toymoban.com/news/detail-757836.html

  1. 头文件添加消息申明
protected:
    afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2);
  1. cpp文件添加消息映射
BEGIN_MESSAGE_MAP(YourMainDialog, CDialogEx)
    // 其他消息映射
    ON_WM_HOTKEY()
END_MESSAGE_MAP()
  1. OnInitDialog添加全局热键注册
BOOL YourMainDialog::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // 注册全局热键Ctrl + G,ID为1
    RegisterHotKey(GetSafeHwnd(), 1, MOD_CONTROL, 'G');

    return TRUE;
}
  1. 实现热键功能函数
void YourMainDialog::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
{
    if (nHotKeyId == 1)
    {
        // Ctrl + G 被触发
        // 弹出文件选择框

        CString strFilter = _T("All Files (*.*)|*.*||");
        CFileDialog fileDlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, strFilter, this);

        if (fileDlg.DoModal() == IDOK)
        {
            // 用户选择了文件,可以在这里处理选中的文件
            CString filePath = fileDlg.GetPathName();
            // 处理文件路径...
        }
    }

    CDialogEx::OnHotKey(nHotKeyId, nKey1, nKey2);
}

MFC键盘宏定义:

功能键:
  • VK_TAB: Tab键。
  • VK_SPACE: 空格键。
  • VK_BACK: 退格键(回退键)。
  • VK_DELETE: 删除键。
  • VK_INSERT: 插入键。
  • VK_HOME: Home键。
  • VK_END: End键。
  • VK_PRIOR: Page Up键。
  • VK_NEXT: Page Down键。
方向键:
  • VK_LEFT: 左箭头键。
  • VK_RIGHT: 右箭头键。
  • VK_UP: 上箭头键。
  • VK_DOWN: 下箭头键。
功能键:
  • VK_F1 ~ VK_F24: F1 ~ F24键。
数字键:
  • VK_0 ~ VK_9: 数字0 ~ 数字9键。
字母键
  • VK_A ~ VK_Z: 字母A ~ 字母Z键。
符号键:
  • VK_OEM_1: 分号键(;)或冒号键(:)。
  • VK_OEM_PLUS: 加号键(+)或等于键(=)。
  • VK_OEM_COMMA: 逗号键(,)或小于键(<)。
  • VK_OEM_MINUS: 减号键(-)或下划线键(_)。
  • VK_OEM_PERIOD: 句号键(.)或大于键(>)。
  • VK_OEM_2: 斜杠键(/)或问号键(?)。
  • VK_OEM_3: 反引号键(`)或波浪号键(~)。
  • VK_OEM_4: 左方括号键([)或左花括号键({)。
  • VK_OEM_5: 反斜杠键(\)或竖线键(|)。
  • VK_OEM_6: 右方括号键(])或右花括号键(})。
  • VK_OEM_7: 单引号键(')或双引号键(")。

到了这里,关于基于MFC的键盘响应(热键触发事件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js获取键盘按键事件、判断键盘按键事件、调用键盘按键事件

    第一:获取键盘按键事件 第二:判断键盘按键事件 第三:调用键盘按键事件

    2024年02月11日
    浏览(38)
  • MFC - 控件的消息和控件的事件(命令)有什么区别?

    MFC的控件都能添加事件处理程序( 类向导称事件为命令 ) 控件的 消息 和控件的**事件(命令)**有什么区别? 事件 可能由多个消息组成, 事件是消息的封装 。控件的事件也是通过消息机制来处理的,所以这两者在 本质上是一样的。函数本身没什么太大区别只不过函数的

    2023年04月13日
    浏览(24)
  • 键盘按键事件 通过键盘上下左右按键移动界面上图标

    #main.c文件 #include “keyevent.h” #include int main(int argc, char *argv[]) { QApplication a(argc, argv); KeyEvent w; w.show(); } #include “keyevent.h”//头文件 #ifndef KEYEVENT_H #define KEYEVENT_H #include #include #include class KeyEvent : public QWidget { Q_OBJECT public: KeyEvent(QWidget *parent = 0); ~KeyEvent(); void drawPix(); void keyPre

    2024年02月09日
    浏览(34)
  • C++的MFC实现Bresenham算法画直线,从菜单和鼠标响应开始包含代码的完整良心教程

    首先在菜单栏中加入这个工具 然后给他一个ID,注意要全大写   在类视图中右键你的view,选择属性   在消息栏添加鼠标消息,此时会自动添加一个空函数体。    在事件栏添加鼠标事件,为按下菜单栏按钮的时候添加要做的事情。此时也会生成一个空函数体叫做void CMFCApp

    2024年02月06日
    浏览(31)
  • MFC中的窗体绘制事件函数:OnCtlColor、OnPaint、OnNcPaint、OnDrawItem、OnEraseBkgnd、OnDraw

    参考:https://learn.microsoft.com/ 即将绘制子控件时,框架会调用此成员函数。 参数 pDC 包含指向子窗口的显示上下文的指针。 可能是暂时性指针。 pWnd 包含指向请求颜色的控件的指针。 可能是暂时性指针。 nCtlColor 包含以下用于指定控件类型的值之一: CTLCOLOR_BTN 按钮控件 CTL

    2024年02月12日
    浏览(24)
  • Vue键盘按键别名/事件说明及案例

    Vue中的按键别名(): 回车 = enter 删除 = delete (退格 、 删除 按键) 退出 = esc 空格 = space 换行 = tab (必须配合 keydown 去使用) 上 = up 下 = down 左 = left 右 = right 如果没有内置别名可以 组合: 组合类 = shift + tab 监听事件: keydown :当用户按下任意键时触发。 keyup :当用户释

    2024年01月18日
    浏览(33)
  • 【MFC实践】基于MFC向导C++制作计算器(附文件)

    MFC(Microsoft Foundation Classes)向导是一套用于简化Windows应用程序开发的工具集。 它建立在Microsoft Foundation Classes(MFC)之上,为开发人员提供了一种更直观、高效的方式来构建图形用户界面(GUI)应用程序。MFC向导通过提供可视化设计工具、代码生成器等功能,使得开发者能够

    2024年01月16日
    浏览(32)
  • C#使用SnsSharp实现鼠标键盘钩子,实现全局按键响应

    CSDN下载地址:https://download.csdn.net/download/sns1991sns/88041637 gitee下载地址:https://gitee.com/linsns/snssharp 一、键盘事件,使用 SnsKeyboardHook 按键事件共有3个:         KeyDown (按键按下)                 KeyUp (按键松开)                  KeyPress (按键按下并松开) 以

    2024年02月14日
    浏览(26)
  • Qt键盘事件常用按键key值整理

    Qt文档中给了个上百个按键,太多了,所以这里整理了Qt中键盘事件常用的一些按键,若各位想找的按键在这里找不到的话,可以自行在Qt文档中再查看 键名 十六进制值 按键 Qt::Key_Escape 0x01000000 Esc  Qt::Key_Tab 0x01000001 Tab  Qt::Key_Backtab 0x01000002 Tab  Qt::Key_Backspace 0x01000003 退格 Q

    2024年02月12日
    浏览(28)
  • C#版本的按键精灵,全局键盘鼠标事件

    代码参考: 钩子类:

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包