タイトル : Re: (VB6テキストボックス自動改行機能 投稿日 : 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 などのように、 入力後のタイミングで調整することになるかと思います。 |