0

編集コントロールを使用する状況があり、ガイダンスが必要です。ほとんどの場合、テキスト エディタは正常に機能しますが、入力前の最後の数文字や入力した文字に応じて、最後の数文字を別の文字に置き換える必要がある場合もあります。

私には明白に見える解決策は、内容が変更される直前に文字バッファー GetWindowText() を用意し、入力された文字をバッファーに追加し、必要に応じてバッファーを操作してから SetWimdowText() にすることです。

エディット コントロールに独自のバッファーがあることはわかっています。それで、これは自分のバッファを持つための正しいアプローチですか、それともバッファを共有する方法はありますか? エディターの文字数は 4MB を超えない可能性があります。

古いものには熱心ではなく、Windows 7とXPで動作するためにこれが必要です。私はMFCを使用しています。

ご協力いただきありがとうございます。

4

1 に答える 1

1

独自のバッファーは必要ありません。実際、同期が外れてしまう可能性があるため、バッファーを持つことは危険です。

ただし、編集テキスト全体を一度に設定する必要はありません。ドキュメントから:

また、エディット コントロールが複数行の場合、CEdit メンバー関数 GetLine、SetSel、GetSel、および ReplaceSel を呼び出して、コントロールのテキストの一部を取得および設定します。

ReplaceSelあなたが探しているものだと思います。このテキストでは複数行の編集コントロールについて説明していますがSetSelReplaceSelなどは単一行の編集コントロールでも問題なく機能します。

于 2011-05-14T06:53:43.127 に答える