たまにはVC++ |
『オーナードローを作る』
2003.JUn.22
|
ボタンのオーナードロー |
オーナードローについては前にやってます。
ボタンのオーナードローはメニューほど面倒くさくはありませんが、やっぱり「オーナー描画」というだけあって、それなりに面倒くさいです。
とにもかくにもやってみましょう。
|
いいからソースを見せろ! |
どうぞ。
やっぱソース見ないとピンときませんね。
|
オーナードローメッセージ |
ボタンのオーナードローは WM_DRAWITEM メッセージが来るので、ここに描画ルーチンを書きます。
このメッセージは処理をした場合TRUEを返さなくてはなりません。
ちなみに何も描画しないと、ボタンはデフォルトの表面色を持った、ただの平面でしかありません。
つまり、ボタンの枠も自分で描画しないといけないという事です。
|
淡色表示(無効状態)のボタン |
意外と「無効状態」のサンプルってネットにないんですよねー。
「そんな所までやらんにゃならんのか・・・」とは思わないでそこまで出来るのがオーナードローなんです。
自由度が高いって事ですね。(まぁ制限もありますが)
無効状態、つまりEnabledWindow()なんかで、ボタンを無効化した場合、通常文字色が灰色になって、画像なんかはマスク色を除いた部分が暗い灰色になります。
これはSetTextColorとイメージリストコントロールを使えば、あっさり実現できます。
使い方はサンプルを見てください。
|
サンプル画像 |
サンプル画像です。
フォーカスの枠も描画しています。
あと画像じゃ分かりづらいですが、淡色文字は2重になっています。
|
終わり |
これで終わりです。
折角のオーナードローですから、もっと色々画像を変えてみると面白いと思いますよ。
今回やったサンプルです。
c05.lzh (7.58KB)
|