5

我们有一个非常大的内部 MFC 应用程序。它有一个带有菜单栏的主窗口,以及数百个独特的子窗口(没有菜单栏),它们显示在主窗口的顶部(不是同时显示的)。这些子窗口被实现为CDialogs 但无模式运行(通过CreateWindow,不是DoModal)。他们的父级HWND设置为NULL

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

这可以很容易地用应用程序范围的键盘挂钩来伪造,注意那个确切的击键,但我想知道是否有更清洁的方法?

4

1 回答 1

1

您也可以RegisterHotKey()在主窗口中使用。这将产生一个副作用,即使在不同的应用程序中按下新的热键也会触发。您可以通过GetCurrentProcessId()GetWindowThreadProcessId(GetForegroundWindow())

于 2015-05-23T00:00:50.163 回答