GetStockObject()で好きな色を – プログラミング – Home

通知
すべてクリア

[解決済] GetStockObject()で好きな色を


API派
 API派
(@API派)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

スタティックウインドウの背景色を好きな色にしたいです。

case WM_CTLCOLORSTATIC:
 return GetStockObject(WHITE_BRUSH);

で、白と灰色と黒ならできるけど、それ以外は
どうしたらいいんですか?

例えば、200,0,0 という赤色なら、

HBRUSH hBrush = CreateSolidBrush(200);

case WM_CTLCOLORSTATIC:
 return GetStockObject(hBrush);

としてもコンパイルエラーだし。


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

SelectObject()を使いましょう。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 23年前
投稿: 252
 

単に
return hBrush;
でいいです。
#キャストが必要ですけどね。


返信引用
Mr.Tame
 Mr.Tame
(@Mr.Tame)
ゲスト
結合: 23年前
投稿: 4
 

そんなことないですよ。CreateSolidBrushは、使えます。

case WM_CTLCOLORSTATIC:
   hBrush = CreateSolidBrush(RGB(255,255,255));
   return (long)hBrush;


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 23年前
投稿: 217
 

> case WM_CTLCOLORSTATIC:
>   hBrush = CreateSolidBrush(RGB(255,255,255));
>   return (long)hBrush;

これはまずいですよ。Create したブラシを削除することが出来ません。
あらかじめ別の場所で Create しておいたブラシのハンドルを返すだけでよいです。


返信引用
API派
 API派
(@API派)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

>Bun
 寝言? あほかっ!

>Mr.Tame
>kazuma
 ありがとうございます。
 return (long)hBrush;
 でできました。

 case WM_CTLCOLORSTATIC:
  hBrush = CreateSolidBrush(RGB(200,0,0));
 だと、ブラシを削除できないから、別の位置で
 ブラシを作りました。


返信引用
Mr.Tame
 Mr.Tame
(@Mr.Tame)
ゲスト
結合: 23年前
投稿: 4
 

kazumaさんの言うとうりです。
hBrush = CreateSolidBrush(RGB(255,255,255));を
case WM_CTLCOLORSTATIC:の前に書くつもりが謝って
後に書いてしまいました。すいません。


返信引用
hoge
 hoge
(@hoge)
ゲスト
結合: 23年前
投稿: 13
 

> 寝言? あほかっ!

Bunさんの名誉のため、API派さんの今後のためにも一応突っ込んどきます
解決のチェックがついてしまっていますが、ご覧いただけることを期待します

それが聞く側の態度ですか?
確かにSelectObjectは見当違いですが、私(他の方もそうかも知れません)から見たら
 return GetStockObject(hBrush);

 あほかっ!
って感じなんですけどねぇ

プログラミング以前にもっと学ぶべきものがあると思います

以上


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

>Bunさんの名誉のため、API派さんの今後のためにも一応突っ込んどきます

フォロー??? ありがとうございます。

> あほかっ!
>って感じなんですけどねぇ

ただ、個人の批判はしないように注意事項に書いてあります。
いわれたら、気分のいいものではないので、控えるべきですよね。

もとはといえば、私の誤った解答が原因なので、こちらでお詫びします。
もう少し、内容を良く読んで、発言するように注意します。

すみませんでした。m(__)m


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました