始めまして。
一つ教えてください。Visual Studio VC++2005 MFC を使っていますが、、
CStaticクラスでテキストを貼り付け、そのテキストの色を変えたりしたいと思っていますが、
うまく動作しません。
CStaitcを継承したCColorStaticというクラスを作成し、そのクラスでWM_CTLCOLORの
イベント関数 OnCtlColor を作成しました。
しかし、この OnCtlColor がコールされません。
ボタンで同様の事をした時は、OwnerDraw というプロパティをTrueにしたらうまく動作した
のですが、CStaticにはOwnerDraw というプロパティはありません。
なにか原因が推測できませんでしょうか?
掲示板で類似のことが色々あがっており、参照していますが原因らしいものは見つけられ
ませんでした。
よろしくお願いします。
>しかし、この OnCtlColor がコールされません。
単にCColorStaticに通知されていないだけでは?
StaticにSS_NOTIFYスタイルを追加してください。
(プロパティで簡単に設定できるかも)
なんか勘違いっぽいです。
にたような質問があったので参考にしてください。
Staticオブジェクトの背景色、文字色の変更
http://forums.belution.com/ja/vc/000/058/55s.shtml
Blueさま、早々に返信していただきありがとうございます。
SS_NOTIFY は、CStaticプロパティのNotifyをTRUEにしてみました。
しかし、だめでした。
コントロールの作成は、次のようにしています。
・CStaticのコントロールをFORMに貼り付ける
・CStaticのコントロール変数(CStatic m_Static)を生成する
・作成した変数のクラスをCColorStaticに編集して変更する
・WM_CTLCOLORのメッセージのイベント関数OnCtlColorを生成
というような手順で作成していますが、これになにか根本的な間違いが
あるのでしょうか?
なにかお気づきの点がありましたら、お教えください。
よろしくお願いします。
いや
> http://forums.belution.com/ja/vc/000/058/55s.shtml
みてくれましたか?
>・WM_CTLCOLORのメッセージのイベント関数OnCtlColorを生成
では不味いということがでていますよ。
Blueさま、回答ありがとうございました。
前回の私の返事は、16:06に記入いただきましたメッセージを見落として投稿して
しまいました。行き違いになってしまい申し訳ありませんでした。
> http://forums.belution.com/ja/vc/000/058/55s.shtml
を見ました。間違いが解りました。
>・WM_CTLCOLORのメッセージのイベント関数OnCtlColorを生成
ではだめで、=WM_CTLCOLORのメッセージのイベント関数OnCtlColorを生成しなくては
いけないという事ですね。
この方法を試してうまく動作させることができました。
VC++の経験が浅いので、知らないことばかりに出くわす毎日です。
大変助かりました。
適切なご指導ありがとうございました。