VC エディットボックスを単語単位で折り返さない方法 | 株式会社リッカWebサイト

株式会社リッカ

BLOG
ブログ詳細

2018-07-11VC エディットボックスを単語単位で折り返さない方法

 

はじめに

エディットボックス(CEdit)をマルチラインで水平スクロールをOFFにすると、
長い文章を入力した時に、単語単位で折り返してしまいます。

こんな感じを、

こんな感じにしたい。

けれど、プロパティが見つからないんですよね…

※EditBoxの文章は、MSのEditWordBreakProcの説明より引用

 

やり方

どうやら、EditWordBreakProc()と言うコールバック関数を作ってあげて、
単語単位で折り返したくないエディットボックスに設定してあげればいいようです。

 

実装してみる

こちらの記事を参考にさせていただきました。

けど、記事の方法だと、OnChangeEdit1()が呼ばれるたびにコールバックを設定しているので、
私は、OnInitDialog()がいいかなと思って少し変えてみました。

EditWordBreakProcと言うコールバックを作成してあげて、
該当のエディットボックスをGetDlgItem()で取得。
その後、SendMessage()でEditWordBreakProcを設定してあげる。
OnInitDialog()あたりは一回呼ばれるのでいいかな?と思いました。

アプリケーション次第では、設定画面で呼んであげる必要があるかもしれませんね。
(単語単位で折り返すのチェックボックスがあるアプリとかね。)

最後に

けっこう、がんばって調べてたんですが、実装はお蔵入りになりそうだったので、
せっかくなのでこちらに紹介しておきました。