荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: VC FAQ(9)
发信站: BBS 荔园晨风站 (Tue Jan 26 22:52:05 1999), 转信


--------------------------------------------------
   How change the background color of a view?
--------------------------------------------------

To change the background color for a CView, CFrameWnd, or CWnd object,
process
the WM_ERASEBKGND message. The following code shows how:


BOOL CSampleView::OnEraseBkgnd(CDC* pDC)

{

        // Set brush to desired background color

        CBrush backBrush(RGB(255, 128, 128));

        // Save old brush

        CBrush* pOldBrush = pDC->SelectObject(&backBrush);

        CRect rect;

        pDC->GetClipBox(&rect);     // Erase the area needed

        pDC->PatBlt(rect.left, rect.top, rect.Width(),

        rect.Height(), PATCOPY);

        pDC->SelectObject(pOldBrush);

        return TRUE;

}

I solved the problem like this->

HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{

        switch (nCtlColor)

        {

                case CTLCOLOR_BTN:

                case CTLCOLOR_STATIC:

                {

                        pDC->SetBkMode(TRANSPARENT);

                }

                case CTLCOLOR_DLG:

                {

                        CBrush*         back_brush;

                        COLORREF        color;

                        color = (COLORREF) GetSysColor(COLOR_BTNFACE);

                        back_brush = new CBrush(color);

                        return (HBRUSH) (back_brush->m_hObject);

                }

        }

        return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));

}

Tim, tfiner@vrli.com, email, 9/10/95



--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店