- ベストアンサー
テキストエリア装飾
Windows用のソフトウェアでテキストエリアのようなもの を表示させたいのですが、フリーのテキストエディタには ソースコードのifやdefineなどの文字背景色を変更している ものがあるようです。 これらは、テキストエリアの場所の実体はエディット コントロールではないですよね? リッチエディットでも部分的な背景色の変更は無理ですよね? テキストエディタではどのような方法で部分的な背景色を 変更するのが一般的なのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
sakura を使ってますが(最高)、これのソースも独自描画ですね。 DrawText とか使って文字を書いてます。 標準部品は、ちょっとしたものを製造するには便利ですが、 何かに特化した/凝ったものを作るには、出来合いの機能が邪魔なこともあります。 多大な手間をかけてカスタマイズするより、自作した方が何でもできる/早い/綺麗などです。 色分けできるようなテキストエディタは、大抵標準のコントロールを使ってません。 自作してるか、エディタ用に公開された専用コンポーネント等を採用しています。 ただの Edit を使うと Notepad もどき、 RichEdit を使うと Wordpad もどきになりがちです。 # メインがエディタなら習作の延長かもしれません。 # 別の「売り」がある場合には、付加価値の重み付けの問題でしょう。 一般論で言えば、 テキストエリアが注力すべきポイント(売り)なら独自処理の労力をかけることも検討、 ソフトの売りが他にあり、そこが単なる部品にすぎないなら、 とりあえず標準のコントロールで済ませることを検討、 くらいだと思います。「背景の着色はMUSTな要求ですか」
その他の回答 (3)
- taranrappu
- ベストアンサー率64% (16/25)
MSDNのWin32APIカテゴリに それっぽいAPIがゴロゴロしています。 参考URLはその1部です。 恐らく探せば ソースコードが公開されている エディタって世の中にあると思いますので それが一番参考になるかと。 確か国産だとサクラエディタがソース公開していたと思います。
- taranrappu
- ベストアンサー率64% (16/25)
こんにちは。 単純なエディットコントロールは機能は簡易ですし リッチエディットは文字や背景色を変更できても 動作がすごく重いです。 エディタのようなものを作ろうとしているのでしょうか。 フリーのエディタでソースコードが公開されているものが参考になると思いますが GDI系のAPIを使って自前で描画しているのではないかと想像します。
- moritan2
- ベストアンサー率25% (168/670)
テキストエディタというものは、いろんな独自の機能があるわけで、全てのキー入力や描画などは用意されているコントロールなどを使うのではなく直接APIを使うことになると思います。
お礼
ありがとうございました。
補足
その関数名は想像できていますか?