VS2008 と MFC 機能パックを使用して MFC アプリケーションを開発しました。このアプリケーション UI はリボンを使用しています。
アプリケーションの重要な機能の 1 つの適切なショートカットとして F10 を使用する必要がありますが、常にデフォルトのリボン アクセラレータを使用するため、アクセラレータを正しく設定できないようです。
これを達成する方法はありますか?
VS2008 と MFC 機能パックを使用して MFC アプリケーションを開発しました。このアプリケーション UI はリボンを使用しています。
アプリケーションの重要な機能の 1 つの適切なショートカットとして F10 を使用する必要がありますが、常にデフォルトのリボン アクセラレータを使用するため、アクセラレータを正しく設定できないようです。
これを達成する方法はありますか?
WM_SYSKEYDOWNのハンドラーを追加し、メッセージコードでvK_F10のwParam値を確認してみましたか?F10は、Altキーを押してキーボード制御下でメニューバーを開くための古い代替手段であるため、特別な処理が必要です。
すでにホットキーを登録しようとしていると思います。キーストロークを取得する標準的な方法は、アプリのメイン スレッドに SetWindowsHookEx を使用することです。グローバル ウィンドウ フックは負荷が高く、Vista/Win7/Server 2008 でのフックに対するセキュリティ制限により、いずれにしてもそれらの有用性は大幅に低下しています。ただし、プロセス固有のフックは問題なく、DLL に含める必要はありません。