dポイントプレゼントキャンペーン実施中!

お世話になります。現在MFCでTCP/IPパケットを受信したものをCEdtiViewクラスのViewに表示するプログラムを作成しました。
そこで、わからない事が出てきたので、わかる方々にご教示していただきたく投稿いたしました。

わからない事は、Viewに表示される文字色が現在Black(default??)なのですが、その色を変えたいのですが、どのようにしたらいいのでしょうか?
ちなみにViewへの表示はGetEditCtrl()という関数を使用していて、

CString Msg(_T("TEST"));
int nLen = GetWindowTextLength();
GetEdtiCtrl().SetSel(nLen,nLen);
GetEditCtrl().ReplaceSel(Msg);
このような記述をしています。

このGetEditCtrlを使って文字色の変更は出来ないのでしょうか?

あとタイトルにも記載したのですが、あるトリガーがあるとそのEditViewクラスの描画文字列をすべてクリアしたいと考えています。
トリガーは簡単にボタンが押されたときに~~~C***Viewの領域クリア
このような時はどのようにしたらいいのでしょうか?
初心者ですが、宜しくお願いいたします。
---------------------------開発環境--------------------------------
WinXP sp2 MFC SDI

A 回答 (2件)

CEditViewの派生クラスで色の変更をする場合は


CtlColor(CDC* pDC, UINT nCtlColor)を使うことになります
# Onが付かないほうです ...
Viewクラスのプロパティから メッセージを選択し
=WM_CTLCOLORの右側をクリックで追加できます

この場合最低でも CBrushクラスの変数を用意して、関数からの戻り値にしないといけないでしょう

Viewクラスの OnInitialUpdateメソッドの中などで ブラシを作成してください

ドキュメントの内容を削除したいのであればViewクラスの
DeleteContens()を呼び出せばいいような気がします ...
    • good
    • 0
この回答へのお礼

返答が遅れてしまいまして、本当に申し訳ありません。

>Viewクラスのプロパティから メッセージを選択し
=WM_CTLCOLORの右側をクリックで追加できます

この部分ですが、追加したところ、OnCtlColorが追加させましたけど、
それで宜しいのでしょうか?

>この場合最低でも CBrushクラスの変数を用意して、関数からの戻り値にしないといけないでしょう

これは、 CBrush 変数 としてCBrush変数を作成して、CtlColorの
return CBrush変数 としてあげればよいのでしょうか?
Viewクラスの中のOnInitialUpdateの中で、ブラシを作成しても上手く
行きませんでした。

>ドキュメントの内容を削除したいのであればViewクラスの
DeleteContens()を呼び出せばいいような気がします

MSDNなどで、DeleteContensを検索しても出てこなかったのですが、
どういう使い方をしたらいいのでしょうか?

返信遅くなってしまいましたが、宜しくお願いいたします。

お礼日時:2007/06/25 10:27

デバイスコンテキストクラスの


背景色と文字色を変えることで実装できそうです。
あとはメッセージ云々の処理になりますが、
以下が参考になりそうです。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_E …
    • good
    • 0
この回答へのお礼

aris-wiz様 ご回答ありがとうございます。

さっそくリンク先のサイトを見て実行したのですが、EditViewクラスにおいてOnCtlcolorがオーバーライド出来ませんでした。
ちなみに先ほど記述し忘れたのですが、Visual Studio 2005 MFCを使用して
います。
自分がやりたい事を簡単に書きますと、

1、C***Viewに描画される文字はすべて(青色)とする。アプリケーション
を作動させてる最中に文字色は変更しない!
2、トリガーが与えられると、描画していた文字が消える。

大きく言うと以上2点が出来ればよいのですが、先ほどの参考リンクで、
マネした所うまくいきませんでした。
自分のやり方がいけないのでしょうか?
アドバイス宜しくお願いいたします。

お礼日時:2007/06/22 16:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!