全局热键与特定非子窗口相关联。 它允许用户从系统的任何部分激活窗口。 应用程序通过将 WM_SETHOTKEY 消息发送到该窗口来设置特定窗口的全局热键。 例如,如果 m_HotKeyCtrl
CHotKeyCtrl 对象是 pMainWnd
指向在按下热键时要激活的窗口的指针,则可以使用以下代码将控件中指定的热键与指向的 pMainWnd
窗口相关联。
WORD wKeyAndShift = static_cast<WORD>(m_HotKeyCtrl.GetHotKey());
this->SendMessage(WM_SETHOTKEY, wKeyAndShift);
每当用户按下全局热键时,指定的窗口都会收到 一条WM_SYSCOMMAND 消息,该消息将 SC_HOTKEY 指定为命令的类型。 此消息还会激活接收它的窗口。 由于此消息不包含有关按下的确切键的任何信息,因此使用此方法不允许区分可能附加到同一窗口的不同热键。 热键一直有效,直到发送 WM_SETHOTKEY 的应用程序退出。