SSブログ

エディットコントロール、右端で折り返したりしなかったり [プログラミング]

Windowsに標準で付いてくるメモ帳の様なテキストエディタを作る場合、ウィンドウにエディットコントロールをど~んと貼り付け、ファイルへの入出力を作ったら完成です。
VisualC++でMFCを使う場合は、もっと簡単で、AppWizardでViewの基本クラスをCViewからCEditViewに変更すればOKです。1文字たりともコードを打つ必要がありません。

さて、

メモ帳には、
テキストをウィンドウの右端で折り返すかどうかを設定することが出来ます。
メモ帳の文字を編集する部分は(上で説明したとおり)エディットコントロールで出来てまして、エディットコントロール(MFCではCEdit)では、右端で折り返すかどうかは、コントロールのスタイルで決まります。

スタイルにES_AUTOHSCROLLが指定してあれば折り返さない、
指定されていなければ折り返す。

そこで、必要な時にスタイルを変更して再描画でもすれば、折り返しの切り替え機能が実現でき………。

出来ませんでした~。

どれだけ再描画しようが、テキストの内容をクリアして再設定しようが、折り返すかどうかの変更が出来ません。スタイルの値はちゃんと変わっているんですが。

それではメモ帳の“ウィンドウの右端でテキストを折り返すかどうかの切り替え機能”は、どうやって実現されているのでしょう。

実はこんな方法で実現可能です。

エディットコントロールの作成時に指定したES_AUTOHSCROLLは、ちゃんと機能するので、

“右端で折り返すエディットコントロール”と“折り返さないエディットコントロール”の両方を作っておいて、どっちを表示するかを切り替える。
テキストの内容は、両方とも同じになるように同期を取る。

なんだ、そりゃ。

[船] 今日の二冊
屍鬼〈上〉

屍鬼〈上〉

  • 作者: 小野 不由美
  • 出版社/メーカー: 新潮社
  • 発売日: 1998/09
  • メディア: 単行本

タグ:VisualC++
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。