- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MFCに関する質問です。)
MFC初心者がダイヤログアプリケーションのボタンコントロールの色を変更する方法
このQ&Aのポイント
- VisualStudio2010でMFCを勉強しているVC++初心者です。現在、勉強でダイヤログアプリケーションを作成しており、配置しているボタンコントロールの色を変更しようとしていたのですが、やり方がよくわかりません。
- ボタンにはコントロール変数としてm_Btn1としており、Dlg.cppの「// TODO: 初期化をここに追加します。」以降にm_Btn1.??? = 色と記述しようと思っているのですが、???がわかりません。検索してみましたが、やはりわかりません。
- どなたかご教示をお願いいたします。初心者のため簡単な方法を教えていただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
m_Btn1 をCMFCButtonクラスのコントロール変数にして m_Btn1.SetFaceColor(RGB(0, 128, 255)); // 薄い青 とか。 CMFCButton.m_bTransparent がTRUEだと効かないらしいので注意です。
お礼
すみません上記補足の質問について自己解決しました。 MSDNをよくよんだら、CMFCButtonクラスはCButtonクラスを継承していると書いてありました。 助かりましたありがとうございます。 MSDNの見方や意味がよくわからなくて・・・でも、今回少し見方がわかるようになりました。 ご回答本当にありがとうございました。
補足
ご回答ありがとうございます。 ボタンの色を変更することに成功しました。 ただ、MSDNをよく読んでみたのですが、わかりにくいことから、いくつか疑問が残りますのでどうかご教示下さい。 (1)ヘッダー部の宣言「CButton m_Btn1;」→「CMFCButton m_Btn1;」に変更しました。 しかし、cpp部のCButtonクラスの関数(「EnableWindow関数」や「SetWindowTextW関数」)がそのまま使えています。 MSDNのCMFCButtonクラス内関数一覧にも記載はありませんでした。 CMFCButtonクラスでCButtonクラスの関数が使えるのはなぜなんでしょうか? これがVC++における継承関係(またはオーバーライド?)にあるということなんでしょうか??? (2)CMFCButton.m_bTransparent = true というのは、「ボタンを透明にした場合は、背景色の設定ができませんよ。」という理解で宜しいでしょうか?