ページ 11

ウィンドウクラスの背景色変更

Posted: 2012年12月08日(土) 15:59
by ◯◯ 放送禁止用語なので修正しました
したの方法でstaticウィンドウクラスの背景色を黒に変更しました
プログラムのなかでほかにもstaticウィンドウクラスを使用したいのですが
その場合新しく作ったウィンドウの背景色も黒になってしまうのでしょうか?
そうだとしたら同じウィンドウクラスでウィンドウを作成したときに個別の背景色を
設定するにはどうしたらよいでしょうか?

コード:

    case WM_CTLCOLORSTATIC:
        hdc = (HDC)wParam ;
        //ハンドルの照会処理
        if (HWND_CONTROL::hStatic == (HWND)lParam)
        {
            hBrush = CreateSolidBrush(RGB(0,0,0));            
            return (BOOL)hBrush;
        }
        break;

Re: ウィンドウクラスの背景色変更

Posted: 2012年12月08日(土) 17:57
by ISLe
スタティックコントロールにデフォルトのID(IDC_STATIC)ではなく別のIDを設定し、コントロールIDを取得して条件分岐すれば良いと思います。
背景色によってIDを分ければ、ID毎に同じ背景色とすることができます。

(追記)
スタティックコントロールの塗り潰し用ブラシの指定は、ウィンドウ(クラス)の背景色を変更してるわけではないと思いますけど。
これってもうひとつの質問の回答になってますかね。