• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MFCに関する質問です。)

MFC初心者がダイヤログアプリケーションのボタンコントロールの色を変更する方法

このQ&Aのポイント
  • VisualStudio2010でMFCを勉強しているVC++初心者です。現在、勉強でダイヤログアプリケーションを作成しており、配置しているボタンコントロールの色を変更しようとしていたのですが、やり方がよくわかりません。
  • ボタンにはコントロール変数としてm_Btn1としており、Dlg.cppの「// TODO: 初期化をここに追加します。」以降にm_Btn1.??? = 色と記述しようと思っているのですが、???がわかりません。検索してみましたが、やはりわかりません。
  • どなたかご教示をお願いいたします。初心者のため簡単な方法を教えていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • FAY
  • ベストアンサー率49% (95/193)
回答No.1

m_Btn1 をCMFCButtonクラスのコントロール変数にして m_Btn1.SetFaceColor(RGB(0, 128, 255)); // 薄い青 とか。 CMFCButton.m_bTransparent がTRUEだと効かないらしいので注意です。

参考URL:
http://msdn.microsoft.com/ja-jp/library/bb983413.aspx
vespid21th
質問者

お礼

すみません上記補足の質問について自己解決しました。 MSDNをよくよんだら、CMFCButtonクラスはCButtonクラスを継承していると書いてありました。 助かりましたありがとうございます。 MSDNの見方や意味がよくわからなくて・・・でも、今回少し見方がわかるようになりました。 ご回答本当にありがとうございました。

vespid21th
質問者

補足

ご回答ありがとうございます。 ボタンの色を変更することに成功しました。 ただ、MSDNをよく読んでみたのですが、わかりにくいことから、いくつか疑問が残りますのでどうかご教示下さい。 (1)ヘッダー部の宣言「CButton m_Btn1;」→「CMFCButton m_Btn1;」に変更しました。 しかし、cpp部のCButtonクラスの関数(「EnableWindow関数」や「SetWindowTextW関数」)がそのまま使えています。 MSDNのCMFCButtonクラス内関数一覧にも記載はありませんでした。 CMFCButtonクラスでCButtonクラスの関数が使えるのはなぜなんでしょうか? これがVC++における継承関係(またはオーバーライド?)にあるということなんでしょうか??? (2)CMFCButton.m_bTransparent = true   というのは、「ボタンを透明にした場合は、背景色の設定ができませんよ。」という理解で宜しいでしょうか?