お世話になります。現在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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
CEditViewの派生クラスで色の変更をする場合は
CtlColor(CDC* pDC, UINT nCtlColor)を使うことになります
# Onが付かないほうです ...
Viewクラスのプロパティから メッセージを選択し
=WM_CTLCOLORの右側をクリックで追加できます
この場合最低でも CBrushクラスの変数を用意して、関数からの戻り値にしないといけないでしょう
Viewクラスの OnInitialUpdateメソッドの中などで ブラシを作成してください
ドキュメントの内容を削除したいのであればViewクラスの
DeleteContens()を呼び出せばいいような気がします ...
返答が遅れてしまいまして、本当に申し訳ありません。
>Viewクラスのプロパティから メッセージを選択し
=WM_CTLCOLORの右側をクリックで追加できます
この部分ですが、追加したところ、OnCtlColorが追加させましたけど、
それで宜しいのでしょうか?
>この場合最低でも CBrushクラスの変数を用意して、関数からの戻り値にしないといけないでしょう
これは、 CBrush 変数 としてCBrush変数を作成して、CtlColorの
return CBrush変数 としてあげればよいのでしょうか?
Viewクラスの中のOnInitialUpdateの中で、ブラシを作成しても上手く
行きませんでした。
>ドキュメントの内容を削除したいのであればViewクラスの
DeleteContens()を呼び出せばいいような気がします
MSDNなどで、DeleteContensを検索しても出てこなかったのですが、
どういう使い方をしたらいいのでしょうか?
返信遅くなってしまいましたが、宜しくお願いいたします。
No.1
- 回答日時:
デバイスコンテキストクラスの
背景色と文字色を変えることで実装できそうです。
あとはメッセージ云々の処理になりますが、
以下が参考になりそうです。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_E …
aris-wiz様 ご回答ありがとうございます。
さっそくリンク先のサイトを見て実行したのですが、EditViewクラスにおいてOnCtlcolorがオーバーライド出来ませんでした。
ちなみに先ほど記述し忘れたのですが、Visual Studio 2005 MFCを使用して
います。
自分がやりたい事を簡単に書きますと、
1、C***Viewに描画される文字はすべて(青色)とする。アプリケーション
を作動させてる最中に文字色は変更しない!
2、トリガーが与えられると、描画していた文字が消える。
大きく言うと以上2点が出来ればよいのですが、先ほどの参考リンクで、
マネした所うまくいきませんでした。
自分のやり方がいけないのでしょうか?
アドバイス宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- gooのスマホ スマホF-51Bに緊急時情報画面でロックが掛かって解除できません。 3 2023/06/18 23:05
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダイアログクラスのコントロー...
-
FriendとPublicの違い。。。
-
イベントにAddHandlerされてい...
-
継承を重ねた場合のコストはど...
-
IncludeではなくClassで宣言す...
-
MessageBoxを継承したい
-
privateなメンバ関数をテストす...
-
Delphi2007のCheckBox.Font.Col...
-
DLLからEXEのクラスを呼び出す...
-
VB2008: 継承の場合のコンスト...
-
派生クラスから基本クラスprote...
-
ウィンドウの背景に画像を配置する
-
自動生成コードを変更したい(VB...
-
親クラスのコンストラクタは? ...
-
【VC++】クラスの追加方法について
-
DataGridViewのセルに斜線を引...
-
このコンパイルエラーの意味に...
-
クラスオブジェクトの new の仕...
-
変数・関数その他の命名規則
-
ソケットを使った「非同期」通...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
ダイアログ表示時にチェックボ...
-
クラスのアドレスを引数として...
-
C++ protectedにアクセス不可
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
ダイアログクラスのコントロー...
-
エディットコントロールでEnter...
-
このコンパイルエラーの意味に...
-
CMainFrameクラスの使い方
-
イベントにAddHandlerされてい...
-
MFC モードレスDlgについて
-
MFCのCListCtrlでスクロールを検出
-
privateなメンバ関数をテストす...
-
[MFC] CWnd::MessageBoxの警告...
-
継承を重ねた場合のコストはど...
-
DataGridViewのセルに斜線を引...
-
ボタンのオーナードローについて
おすすめ情報