WinXP SP2
VC2005 SP1
MFC
オーナードローを使用し、
色を変更したボタンの作成を行いました。
作成方法としては、以下のページを参考にさせて頂いています。
http://homepage3.nifty.com/mitui707/VisualC/VCod_colorbtn.html/
色の変更はできたのですが、
ボタンの角が、直角のものができてしまいます。
XPのような、丸角ボタンを作成するには、
どうすればいいのでしょうか?
よろしくお願いします。
Draw3DRect を使っていれば、長方形になるのは当然ですね。
XP のボタンと全く同じ見た目にしたいのであれば、DrawThemeBackGround とか
DrawThemeEdge といった関数が使えます。
が、カスタマイズした角丸ボタンとなると…
RoundRect が角丸四角形を描くのに使えますが、3D っぽくはならないので、そこは自力
で 3D っぽい見た目に描く必要があるでしょう。
オーナードロウと言うのは基本的にそのコントロールの描画を
全てプログラマ側で用意してやるので組込み済みの動作は止めてね
という意味で設定するわけですから、何から何まで自分でやら無いといけません。
そういう意味ではシャノンさんが言われているように自分でXPの標準ボタンっぽく
見えるように頑張って描画するしか無いと思います。
まあ、色を変えてしまうのですから思い切ってボタンの外観も変えてしまうと言うのも
一つの方法だとは思いますね。
本来はその為のオーナードロウですし。
標準のXPのボタンと多少違っていても御愛嬌と言うところかと。
ビットマップボタンでは無理なんですか?
赤色の3Dのビットマップファイルを作って読込めばいいんですよね。
「コントロールの形」を非矩形にしたいなら CWnd::SetWindowRgn() でウィンドウリー
ジョンを設定します。
みなさん、回答ありがとうございます。
ご意見を参考に検討しましたが、
納期がギリギリな為、
愛嬌と言う方向でいこうと思っています。
ただし、時間ができたときに、
上記を参考にさせていただき、チャレンジしてみようと思っています。
ありがとうございました。