Twitch配信者向けのアプリケーションを作成していまして、デザインを弄っている時に、少しハマったので備忘録として。
CMFCButton Class
Learn more about: CMFCButton Class
CMFCButtonは、Visual Studio2008SP1以降に導入されたCButtonの派生クラスです。オーナードローせずにボタン色の変更が可能であったりと少し、便利に使えるクラス群になっています。
基本的には、MFCのリソースエディタでCButton変数を付与したボタンコントロールを作成し、.cpp/.hファイルの”CButton”を”CMFCButton”にすることで使うことができます。
背景色変更ができない
CMFCButtonクラスには、背景色が変更可能なSetFaceColorが用意されています。
CMFCButton Class
Learn more about: CMFCButton Class
しかし、Visual Studio2015とWindows10の環境下では、これが動作しない問題が発生しました。Visual Managerの問題?等々、いろいろ調べてみたのですが、まったく制御できませんでした。
ボタン境界線のみの専用設定があった
CMFCButtonには専用設定が用意されていて、ボタンの描画をWindowsの設定に従うか、自身で設定するかを指定する関数がありました。
CMFCButton Class
Learn more about: CMFCButton Class
これがデフォルトでTRUEになっているため、Windows10のボタンスタイル設定を参照しており、SetFaceColorの設定が無視されていました。
設定をFALSEに変更することで、ボタン色の変更が可能になります。
終わりに
今までもCMFCButtonは使ったことあったはずなんだけどなー。Windows10と8.1で挙動違うのかな。。。暇があったら調べてみます。
コメント