0

私はドキュメントアプリケーションに取り組んでおり、このアプリケーションの一部では、キーボードが押されたイベントを読み取り、そのキーボード入力が事前定義された短い形式/単語と一致する場合に事前定義された文字セットを置き換えるサポートを追加する必要があります。実際のアプリケーションは C++ で実装されています。

これを実装する方法についてのあなたの考えを教えてください。参照用のサンプル C++ プログラムはありますか? アルゴリズム/概念?

4

3 に答える 3

2

wxWidgets API を使用してキーダウン イベントをキャッチする方法については、こちらをご覧ください: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverviewキー イベント に注意してください。C++ でスイッチを実装して、押されたキーの組み合わせを確認し、それに応じてテキストを編集に設定します。ここで考えているのは、編集ボックスで CTRL-SHIFT-A キープレスを Ctrl-Shift-a のようなテキストに変換することです。

文字の組み合わせを他の文字 (漢字やひらがななど) に変換することを考えている場合、アルゴリズムは長くなり、より多くのデータ構造が必要になる可能性があります。

于 2009-01-08T00:52:43.187 に答える
0

Windows を使用している場合は、GetAsyncKeystate API 呼び出しを使用して変更を監視するか、低レベルのキーボード フック (少し複雑) (CreateHookEx + 関連関数) を使用できます。

DOS (またはおそらく Linux) では、コンソール モードの conio.h で _kbhit を使用できます。通常、これをループ (while(!_kbhit());) に挿入して「続行するには任意のキーを押してください」としますが、_getch を使用すると押されたキーを取得する

于 2009-01-28T00:40:03.317 に答える
0

標準 C++ はキー押下イベントをサポートしていないため、OS 関数またはフレームワーク関数のいずれかを調べる必要があります。wxWidgets や Qt などの移植可能な C++ フレームワークは、Windows、Mac、および Linux でのキープレス イベントをサポートしています。

于 2009-01-05T09:26:12.670 に答える