Re: ビューの背景色を変更したい


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2001/06/08 14:43:38

In Reply to: ビューの背景色を変更したい Posted by まき on 2001/06/08 13:35:54


    > Excelの件ではお世話になりました。
    > また、教えてください。
    > ビューの( CFormView )の背景色を変えたいのですが、
    > どのようにすればよいのでしょう???

    CFormView以外の場合は OnEraseBkgnd ですね。

    さて、本題のCFormViewは OnCtlColor で背景のブラシを返せば
    いいだけです。
    ただし、毎回 OnCtlColor でCreateBrush してるとリソースリーク
    を起こしそうなので、


    1.Viewのメンバ変数に
    private HBRUSH hbrBG;

    2.Viewのコンストラクタで
    hbrBG = ::CreateSolidBrush(RGB(128,128,255));

    3.Viewのデストラクタで
    ::DeleteObject(hbrBG);

    4.Viewの OnCtlColor で

    HBRUSH CTest4View::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    //HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: デフォルトのブラシが望みのものでない場合には、違うブラシを返してください
    //return hbr;

    return hbrBG;
    }


    とすれば、いいでしょう。


記事スレッド一覧