グローバル ホット キーは、特定の非子ウィンドウに関連付けられています。 これにより、ユーザーはシステムの任意の部分からウィンドウをアクティブ化できます。 アプリケーションは、そのウィンドウに WM_SETHOTKEY メッセージを送信することによって、特定のウィンドウのグローバル ホット キーを設定します。 たとえば、 m_HotKeyCtrl
が CHotKeyCtrl オブジェクトであり、 pMainWnd
がホット キーを押したときにアクティブ化されるウィンドウへのポインターである場合は、次のコードを使用して、コントロールで指定されたホット キーを、 pMainWnd
が指すウィンドウに関連付けることができます。
WORD wKeyAndShift = static_cast<WORD>(m_HotKeyCtrl.GetHotKey());
this->SendMessage(WM_SETHOTKEY, wKeyAndShift);
ユーザーがグローバル ホット キーを押すたびに、指定されたウィンドウには、コマンドの種類として SC_HOTKEY を指定する WM_SYSCOMMAND メッセージが表示されます。 このメッセージは、受信するウィンドウもアクティブ化します。 このメッセージには、押された正確なキーに関する情報は含まれていないため、このメソッドを使用しても、同じウィンドウにアタッチされている可能性がある異なるホット キーを区別することはできません。 ホット キーは、 WM_SETHOTKEY 送信されたアプリケーションが終了するまで有効なままです。