タイトル | : Re: (VB6テキストボックス自動改行機能 |
記事No | : 16344 |
投稿日 | : 2017/07/21(Fri) 10:46 |
投稿者 | : 魔界の仮面弁士 |
> テキストボックスに入力した文字数が70バイト(半角1文字1バイト、全角1文字2バイト)を超えた場合、 vbTab な文字の幅はどのように扱いますか?
> 自動改行するプログラムを作りたいのですが、何か良い方法があれば教えて頂けないでしょうか? VB6 の TextBox ということは、Shift_JIS 前提ですね。 .NET だと、「ゼロ幅文字」や「結合文字」などへの考慮も必要になってくるところですが。
以前見た処理では、TextBox に固定幅フォントを設定したうえで、 その TextBox の幅を 70桁ぴったりにあわせておき、さらに SendMessage で EM_SETWORDBREAKPROC を投げて、 ワードラップを単語単位から文字単位に変更していました。
見た目上の話ではなく、データとして改行文字を含めたいという意味だとすれば、 そのものズバリは無いと思うので、基本的には自作になるかと思います。
その場合、入力中(Change や KeyPress)に改行すると、 漢字変換時の障害になりますので、改行の挿入処理は、 Validate イベントや LostFocus などのように、 入力後のタイミングで調整することになるかと思います。
|