こんばんは、初めて質問させていただきます。
今、作成しているプログラムでボタンが押されたら、押された事が
わかるようにボタンに枠を付けようとしています。
ボタンの下にピクチャーコントロール(タイプ:四角 初期色:白)
をおいて、ボタンのON,OFFでピクチャーコントロールの色を
変更する仕様に決まったのですが、どうしてもピクチャーコントロ
ールの色の変更が上手くいきません。
ピクチャーコントロールの背景色を設定する事は難しいのでしょう
か?
何方か、ご存知の方おられましたらご教授の方、宜しくお願い致し
ます。
それでは、宜しくお願い致します。
スタティックコントロール(ピクチャーコントロール)に SS_WHITERECT スタイルを
指定しないで、ウィンドウ(ダイアログ?)のWM_CTLCOLORSTATIC メッセージを
ハンドラしたほうが簡単かと。
SS_WHITERECT を指定しちゃうとサブクラス化する必要があるんではないかな。
Shimuraさん、MKさん、回答ありがとうございます。
Shimuraさんの方法は、初心者の私にはすぐに理解できない
ものがありますので、もう少し調べて(勉強して)みたいと
思います。(VBみたいに簡単に出来ればいいのですが)
もし、教えていただいた内容について、説明等が載っている
HPなどがありましら教えてください。(調べているんです
が、なかなか見つからなくて・・・)
MKさんの方法は、背景の色が変更されるのは良いのですが
、ボタンの文字が消えてしまうのがちょっとマズイです。
ビットマップに文字を書いておけばいいのですが、処理の状
態でボタンの文字が変わる仕様なのでちょっと難しいと思い
ます。(状態の数だけビットマップが必要になるはず)
また、何かありましたら、宜しくお願い致します。
あぶさん へ。
開発環境を書くと幸せになれるかもしれません。
SDK? MFC?
WM_CTLCOLORで色付け、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/dialog/color.html
色つきボタン、、、
http://www24.cds.ne.jp/~neg/pro/neg/neg010.html
Shimuraさん、NEGさん、回答ありがとうございます。
Shimuraさん>
申し訳ありませんでした。
質問するのに開発環境を書かないのは非常識ですよね。
開発環境は、Windows2000 SP3, VC++ 6.0 で開発しています。
NEGさん>
参考になるHPを紹介していただきありがとうございます。
早速、今から勉強させていただきます。
また、何かありましたら、質問する事があるかと思いますが、
その際は、宜しくお願い致します。
>Windows2000 SP3, VC++ 6.0
ホントに知りたかったのは・・・
>SDK? MFC? ←これだったんですけど。^^;
NEG(ねぐ)さんご紹介のページでOKというコトで、MFCなのねん。
Shimuraさん、すみませんでした。
>SDK? MFC?
MFCです。
で、ピクチャーコントロールの背景色の件ですが、今まではタイプを「四角形」
で色を「黒」に設定していたのですが、色を「縁取り」に変更したら、背景色が
変わりました。おそらく「縁取り」以外は強制的に設定した色になるのではな
いかなと初心者の私なりに納得しちゃいました。(間違っていたらご指摘下さ
い)
ただ、上記のような変更をし、リソースエディタを閉じた後に、再度リソース
を開くと、さっきまでピクチャーコントロールだったコントロールがテキスト
コントロールに変わっていました。(プロパティにタイトルを見ればわかると
思います)
どうしてこのような現象が起きるんだろう・・・。(こんな事常識なのかな?)
何方、この現象についてご存知の方は教えて下さい。
>おそらく「縁取り」以外は強制的に設定した色になるのでは
そです。なもんで、これを変更するにはサブクラス化の必要が・・というのが
いくつか前の僕のリプライ。
>ピクチャーコントロールだったコントロールがテキストコントロール
>この現象についてご存知の方
ピクチャーコントロールもテキストコントロールも、すべて
STATIC というウィンドウクラス名をもつコントロール。
つまりはスタティックコントロールです。
VB からの移行だと、このあたりとまどうよね。
僕も昔々はVB使ってた。(・・・2.0の時代だけど)