请教下如何动态添加和删除加速键?如何设置组合键作为加速键?

a99899s1 2017-04-03 10:33:52
我写的界面上有个发送按扭,我希望能给这个按扭动态的设置快速键,比如回车.或CTRL+回车.等等.
网上看了些例子.大都是通过资源文件添加的.,而且说的也不是太清楚,
比如.::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
这个资源名称是什么形式?代码里也没有具体按键的设置,按键是在哪里设置添加的?
到底能不能通过代码动态添加,修改.删除快速键?
还有RegisterHotKey是注册全局热键,但我只希望主程序在前台的时候才能响应.
只要程序在前台.我想在无论在本程序的哪个子窗口下都能响应这个快速键,
我也想过,在程序前台的时候注册热键.后台的时候就销毁热键.
或者自已单独写个快速键处理.在每个窗口PreTranslateMessage的WM_KEYDOWN里,添加快速键处理调用入口.
总觉得自已写可能是多余.可能应该有API函数可以直接调用,这样可以减少代码量,也可以减少很多无用关联,

请教下如何动态添加和删除加速键?如何设置组合键作为加速键?
如题,.请教下有经验的大神们,该怎么写?
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2017-04-04
  • 打赏
  • 举报
回复
zgl7903 2017-04-04
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/en-us/library/windows/apps/ms646337.aspx#editable_acc
a99899s1 2017-04-04
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
看 TranslateAccelerator 的声明, 第二个参数是加速键表的句柄, hAccTable Handle to an accelerator table. The accelerator table must have been loaded by a call to the LoadAccelerators function or created by a call to the CreateAcceleratorTable function. int TranslateAccelerator( HWND hWnd, // handle to destination window HACCEL hAccTable, // handle to accelerator table LPMSG lpMsg // address of structure with message );
加速键表里的内容怎么通过代码动态的添加删除呢? LoadAccelerators第二个参数是个什么样的字串?shift,ctrl.A...这样的吗?? 有例子吗?
zgl7903 2017-04-04
  • 打赏
  • 举报
回复
看 TranslateAccelerator 的声明, 第二个参数是加速键表的句柄, hAccTable Handle to an accelerator table. The accelerator table must have been loaded by a call to the LoadAccelerators function or created by a call to the CreateAcceleratorTable function. int TranslateAccelerator( HWND hWnd, // handle to destination window HACCEL hAccTable, // handle to accelerator table LPMSG lpMsg // address of structure with message );
a99899s1 2017-04-04
  • 打赏
  • 举报
回复
引用 1 楼 向立天的回复:
这篇文章有用么 http://blog.csdn.net/dxy408460910/article/details/10492083
这篇文章例子没看到f2影子,不知道是怎么被设置为快捷键的。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧