掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ボタン背景の描画方法は? (ID:67181)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 円形ボタンに対しての WM_CTLCOLORBTN(最後が'BTN'ね)メッセージが親にきた時に > GetStockObject(HOLLOW_BRUSH) を返せば良いと思うよ。 これはダイアログの WM_CTLCOLORBTN メッセージですよね。 記述したらボタンの背景が勝手に描画されました。 ちょっと不思議です。 > ただ、ボタンの実体は四角形のままなので円形外(で元の四角形内)を > クリックされた場合 BN_CLICK が発生する。 これを忘れていました。 前の質問でリージョンの方が良いとアドバイスされていましたが リージョンを使う意味を良く分かっていなかったようです。 見た目上は円形ボタンが描画できましたが、クリックにも対応するには リージョンを使わないと無理っぽいね。ビットマップのリージョンは 大変そうな気がします。いずれリージョンにも対応する予定です。 あといろいろと試してみたらボタンをサブクラス化して WM_ERASEBKGND の メッセージに対して何も処理しないで return 0; を返せば WM_CTLCOLORBTN の メッセージで GetStockObject(HOLLOW_BRUSH) を返したのと同じ効果がでました。 今回はボタンをサブクラス化して使っていたので WM_ERASEBKGND の方に ボタン背景を描画できる仕組みをとりました。 これで解決しました。 本当にありがとうございました。 (オーナードローしているのに背景は別の場所で処理されていたとは…)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.