wxWidgets では、wxTextCtrl でカーソル位置が変更されたことをどのように検出できますか? マニュアルを見て、それに関連するイベントを見つけることができませんでしたが、見逃した別の方法があるかもしれません。
2 に答える
wxTextCtrlはwxWindowを継承するため、次のマウスイベントをそのコントロールにバインドできます。http: //docs.wxwidgets.org/2.8/wx_wxmouseevent.html#wxmouseevent
興味のあるのはEVT_MOTION(func)だと思います。ただし、このイベントを使用したことがないため、バインドされているウィンドウ内のマウスの動き(より興味深いアプローチ)またはグローバルなマウスの動きでのみ発生するかどうかはわかりません。
彼が挿入ポイント カーソルを意味していると確信しています。その場合、その位置の変更に対する wxWidgets イベントはありません。さらに、wxTextCtrl::SetInsertionPoint() と wxTextCtrl::SetInsertionPointEnd() は上書き可能な仮想メソッドですが、これは、ネイティブ プラットフォームの関与に応じたさまざまなアクションではなく、プログラムによって変更された状況のみをキャッチします (これが、このイベントの理由である可能性があります)。現在 wxWidgets には存在しません)。
すべての挿入ポイントの変更を移植可能にキャッチするために私が考えることができる最善の解決策は、タイマーを使用して挿入ポイントの位置を継続的にポーリングすることです。複数の場所でこの機能が必要な場合は、独自のカスタム イベントを生成する組み込みの機能を使用して、独自の wxTextCtrl を派生させることができます。
私の個人的な推奨事項は、常に挿入ポイントの位置を知る必要のない、問題に対する代替ソリューションを探すことです。テキスト コントロールの値が変更されたときだけでなく、挿入ポイントの位置を実際に知る必要がありますか?