加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在无模式对话框窗口中通过加速键

发布时间:2020-12-16 07:12:10 所属栏目:百科 来源:网络整理
导读:我们有一个非常大的内部MFC应用程序.它有一个带有菜单栏的主窗口,以及数百个独特的子窗口(没有菜单栏),它们显示在主窗口的顶部(并非全部同时显示).这些子窗口实现为CDialogs,但无模式运行(通过CreateWindow,而不是DoModal).它们的父HWND设置为NULL. 我们最近
我们有一个非常大的内部MFC应用程序.它有一个带有菜单栏的主窗口,以及数百个独特的子窗口(没有菜单栏),它们显示在主窗口的顶部(并非全部同时显示).这些子窗口实现为CDialogs,但无模式运行(通过CreateWindow,而不是DoModal).它们的父HWND设置为NULL.

我们最近得到了一个功能请求 – 允许主窗口中的特定菜单栏加速器工作,即使其中一个子窗口是活动窗口.从用户的角度来看,这是有道理的.

这可以通过应用程序范围的键盘钩子很容易地伪造,观察那个精确的击键,但我想知道是否有更清洁的方式?

解决方法

您也可以在主窗口中使用RegisterHotKey().这将产生副作用,即使在不同的应用程序中按下,新热键也会触发.你可以通过比较GetCurrentProcessId()和GetWindowThreadProcessId(GetForegroundWindow())来解决这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读