エディットボックスの文字に色


花火  2007-08-08 00:17:58  No: 65990

おせわになります。

複数行表示のエディットボックスにて、
ある行だけ色を変えたいとおもっているのですが
可能でしょうか?

よろしくおねがいいたします。


keichan  2007-08-08 02:36:34  No: 65991

どんぴしゃなログがありました。
参考にどうぞ。

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200612/06120018.txt


Blue  2007-08-08 02:44:43  No: 65992

WM_CTLCOLOREDITって、ある行だけ色をかえれましたっけ?
全体の色が変わっちゃうんじゃないでしょうか?

そうなると
>リッチエディットや、Editコントロールを使わないで自前で描画することになりそうです。
でしょうね。
# リードオンリーだったら結構簡単かも。


花火  2007-08-08 03:50:52  No: 65993

回答ありがとうございます。

>>リッチエディットや、Editコントロールを使わないで自前で描画することに>なりそうです。
>でしょうね。
># リードオンリーだったら結構簡単かも。

自前で描画する方法について、
参考となるURLはあるでしょうか?

リードオンリーでもかまいません。

よろしくおねがいいたします。


RAPT  URL  2007-08-08 10:51:23  No: 65994

オーナードローについて調べてみてください。


Blue  2007-08-08 20:03:51  No: 65995

>RAPTさん
EDITコントロールでオーナードロー(WM_DRAWITEM)って出来るのでしたっけ?

リードオンリーだとしてもエディットボックスの機能(選択等)できないといけなさそう
なので簡単じゃないですね。。。

文字列として表示するだけであれば、エディットボックスを使わない
で(TextOutとかDrawTextとかで)直接描画すればオワリなんでしょうけど。


とり飯  2007-08-08 21:11:34  No: 65996

テキストの一部だけ色づけするなら、リッチエディットボックスでないとダメです。
VC6.0以前だとちょっと厄介ですが、.NETなら簡単です。
オーナードローをする必要はありません。

くぐってみたら、

http://homepage3.nifty.com/mitui707/VisualC/VCrichedit_font.html/

がありました。


花火  2007-08-09 02:42:37  No: 65997

回答ありがとうございます。

http://homepage3.nifty.com/mitui707/VisualC/VCrichedit_font.html/

により、文字の色を変更できました。

ここで記載されている背景色(BackColor)の変更について、
うまく動作しなかったのですが、
VC++6.0(WinXP)では動作しないのでしょうか?


とり飯  2007-08-09 03:56:47  No: 65998

RichEdit2をロードしていますか。
VC++6.0は、デフォルトでは、たしか古いRICHED32だったと思うのです。
(もし、そんなことは知ってるわい!だったら、スルーしてください。)

で、どうやったらいいか、ですが、忘れてしまいました。
今、改めてくぐって見たのですが、かすりもしません。

どなたか、ご存じの方、いらっしゃらないかな。。。。。

ごめんなさい。


RAPT  URL  2007-08-09 11:25:26  No: 65999

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 となります。


花火  2007-08-10 20:34:55  No: 66000

回答ありがとうございます。

>#define _RICHEDIT_VER 0x0100
が、stdafx.hファイル内に見つからないです。

環境は、
VC++6.0(MFC、SDK)
です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加