おせわになります。
複数行表示のエディットボックスにて、
ある行だけ色を変えたいとおもっているのですが
可能でしょうか?
よろしくおねがいいたします。
どんぴしゃなログがありました。
参考にどうぞ。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200612/06120018.txt
WM_CTLCOLOREDITって、ある行だけ色をかえれましたっけ?
全体の色が変わっちゃうんじゃないでしょうか?
そうなると
>リッチエディットや、Editコントロールを使わないで自前で描画することになりそうです。
でしょうね。
# リードオンリーだったら結構簡単かも。
回答ありがとうございます。
>>リッチエディットや、Editコントロールを使わないで自前で描画することに>なりそうです。
>でしょうね。
># リードオンリーだったら結構簡単かも。
自前で描画する方法について、
参考となるURLはあるでしょうか?
リードオンリーでもかまいません。
よろしくおねがいいたします。
オーナードローについて調べてみてください。
>RAPTさん
EDITコントロールでオーナードロー(WM_DRAWITEM)って出来るのでしたっけ?
リードオンリーだとしてもエディットボックスの機能(選択等)できないといけなさそう
なので簡単じゃないですね。。。
文字列として表示するだけであれば、エディットボックスを使わない
で(TextOutとかDrawTextとかで)直接描画すればオワリなんでしょうけど。
テキストの一部だけ色づけするなら、リッチエディットボックスでないとダメです。
VC6.0以前だとちょっと厄介ですが、.NETなら簡単です。
オーナードローをする必要はありません。
くぐってみたら、
http://homepage3.nifty.com/mitui707/VisualC/VCrichedit_font.html/
がありました。
回答ありがとうございます。
http://homepage3.nifty.com/mitui707/VisualC/VCrichedit_font.html/
により、文字の色を変更できました。
ここで記載されている背景色(BackColor)の変更について、
うまく動作しなかったのですが、
VC++6.0(WinXP)では動作しないのでしょうか?
RichEdit2をロードしていますか。
VC++6.0は、デフォルトでは、たしか古いRICHED32だったと思うのです。
(もし、そんなことは知ってるわい!だったら、スルーしてください。)
で、どうやったらいいか、ですが、忘れてしまいました。
今、改めてくぐって見たのですが、かすりもしません。
どなたか、ご存じの方、いらっしゃらないかな。。。。。
ごめんなさい。
Blueさん>
>EDITコントロールでオーナードロー(WM_DRAWITEM)って出来るのでしたっけ?
ああぁorz
ご指摘ありがとうございます。EDITではできませんでした。
で、リッチエディットですが、VC6では、デフォルトでv1.0を使うような
ソースになっています。stdafx.h で
#define _RICHEDIT_VER 0x0100
となっているところを
#define _RICHEDIT_VER 0x0200
に書き換えればいけたと思います。(SDKの場合)
なお、使用するDLLは、0x0100 のときは、RICHED32.DLL
0x0200 のときは、RICHED20.DLL となります。
回答ありがとうございます。
>#define _RICHEDIT_VER 0x0100
が、stdafx.hファイル内に見つからないです。
環境は、
VC++6.0(MFC、SDK)
です。
ツイート | ![]() |