1

を使用して MFC ダイアログ フィールドにリンクされた、サイズ 500 の DB テキスト フィールドがありますCRichEditCtrlCRichEditCtrl::LimitText(500)DBが処理できる以上のテキストを入力できないように呼び出しますが、これは改行を入力するまで問題なく機能します。各改行は文字列の長さを 2 ずつ増やしますが、500 の制限に対しては 1 としてカウントされるだけCStringです。

特に、ユーザーが入力したテキストを切り捨てるのではなく、500 文字の制限までしかテキストを入力できないようにするコントロールが必要です。どうすればこれを達成できますか?注意してください、私はそのままの内容を保存する必要があり、DBなどで置き換えるCString必要はありません。\r\n\n

4

1 に答える 1

1

上書きOnCharし、テキスト内の改行数を数えてから設定しctrl.LimitText(500 - count)ます。このようにして、DB の 500 文字の制限を破ることを回避します。

ここで説明されているように、制限を破る可能性のある貼り付けイベントにも注意する必要があります。

于 2013-03-07T13:16:19.820 に答える