キーボード文字を読んでショートカットを決定する[終了]
-
03-07-2019 - |
質問
ドキュメントアプリケーションと、このアプリケーションの一部に取り組んでいます実際のアプリケーションはC ++で実装されています。
これを実装する方法についての考えを教えてください。参照用のサンプルC ++プログラムはありますか?アルゴリズム/概念?
解決
標準C ++はキー押下イベントをサポートしていないため、OS関数またはフレームワーク関数のいずれかを調べる必要があります。 wxWidgetsやQtのようなポータブルC ++フレームワークは、Windows、Mac、Linuxでキー押下イベントをサポートします。
他のヒント
wxWidgets apiを使用してキーダウンイベントをキャッチする方法については、こちらをご覧ください。 http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview キーイベントに注意してください。 C ++でスイッチを実装して、どのキーの組み合わせが押されたかを確認し、それに応じてテキストを編集に設定します。ここで考えているのは、編集ボックスでCTRL-SHIFT-AキーをCtrl-Shift-aのようなテキストに変換することです。
文字の組み合わせを他の文字、たとえば漢字やひらがなに変換することを考えている場合、アルゴリズムが長くなり、より多くのデータ構造が必要になる可能性があります。
Windowsの場合は、GetAsyncKeystate API呼び出しを使用して変更を監視するか、低レベルのキーボードフック(少し複雑)を使用できます(CreateHookEx +関連関数)。
DOS(または場合によってはLinux)では、コンソールモードのconio.hで_kbhitを使用できます。ただし、_getchを使用すると、押されたキーを取得できます