指定した範囲に背景を設定するには?

解決


brother  2007-06-30 17:53:45  No: 65545

CreateWindowで作成したウィンドウの上 1/10 程度にのみに背景をつけたいのですが方法がわからず悩んでいます。
(イメージとしては携帯で出されるポップアップの上 1/5 程度が着色されている感じです)

hbrBackgroundではウィンドウ全体が着色されますし、
SetBkColorではテキストの背景しか着色されません。

MFCは使用していません。
WIN32APIで作成しています。

どなたか教えていただけませんか?


瀬戸っぷ  2007-06-30 19:22:13  No: 65546

> CreateWindowで作成したウィンドウの上 1/10 程度にのみに背景をつけたいのですが方法がわからず悩んでいます。

WM_ERASEBACKGROUNDでHDC受け取れるので、
そのDCに対して描画してください。
単色ならFillRect()辺りで塗りつぶせばよいかと。

DefWindowProc()呼んだ後に自前で描画して、0以外を返却…かな。


brother  2007-06-30 22:37:49  No: 65547

瀬戸っぷさん回答ありがとうございます。

FillRect()←これですべて解決しました。
HDCを受け取り、
RECTで描画する範囲を指定して
HBRUSHで描画する色を取得し
期待していた背景を描画することができました。

おかげで解決することができました。
ありがとうございました。


brother  2007-06-30 22:37:50  No: 65548

瀬戸っぷさん回答ありがとうございます。

FillRect()←これですべて解決しました。
HDCを受け取り、
RECTで描画する範囲を指定して
HBRUSHで描画する色を取得し
期待していた背景を描画することができました。

おかげで解決することができました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加