GetStockObject()で好きな色を

[戻る]
API派 2002/02/15(金) 11:41:06
スタティックウインドウの背景色を好きな色にしたいです。

case WM_CTLCOLORSTATIC:
 return GetStockObject(WHITE_BRUSH);

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

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

HBRUSH hBrush = CreateSolidBrush(200);
〜
case WM_CTLCOLORSTATIC:
 return GetStockObject(hBrush);

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

Bun 2002/02/15(金) 11:54:31
SelectObject()を使いましょう。

YuO [E-Mail] 2002/02/15(金) 12:04:29
単に
return hBrush;
でいいです。
#キャストが必要ですけどね。

Mr.Tame 2002/02/17(日) 17:57:29
そんなことないですよ。CreateSolidBrushは、使えます。
        
case WM_CTLCOLORSTATIC:
   hBrush = CreateSolidBrush(RGB(255,255,255));
   return (long)hBrush;

kazuma 2002/02/17(日) 19:24:51
> case WM_CTLCOLORSTATIC:
>   hBrush = CreateSolidBrush(RGB(255,255,255));
>   return (long)hBrush;

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

API派 2002/02/18(月) 16:34:30
[[解決]]
>Bun
 寝言? あほかっ!

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

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

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

hoge 2002/02/19(火) 22:44:46
> 寝言? あほかっ!

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

それが聞く側の態度ですか?
確かにSelectObjectは見当違いですが、私(他の方もそうかも知れません)から見たら
 return GetStockObject(hBrush);
も
 あほかっ!
って感じなんですけどねぇ

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

以上

Bun 2002/02/20(水) 09:02:33
>Bunさんの名誉のため、API派さんの今後のためにも一応突っ込んどきます

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

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

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

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

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

古いスレッドには追加発言できません。