如何在一个Cview 中添加一个背景图片网上什么地方有例程???

解决方案 »

  1.   

    CMDIClientWnd::CMDIClientWnd()
    {
    m_bitmap.LoadBitmap(IDB_SERVER_MAINBIT);
    m_bitmap.GetObject(sizeof(BITMAP),&m_bmp);
    }CMDIClientWnd::~CMDIClientWnd()
    {
    }
    BEGIN_MESSAGE_MAP(CMDIClientWnd, CWnd)
    //{{AFX_MSG_MAP(CMDIClientWnd)
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    /////////////////////////////////////////////////////////////////////////////
    // CMDIClientWnd message handlersvoid CMDIClientWnd::OnPaint() 
    {
    CPaintDC dc(this); // device context for painting
    CDC dcMem;
    dcMem.CreateCompatibleDC(&dc);
    dcMem.SelectObject(m_bitmap);
    CRect rect;
    GetClientRect(&rect);
    int nWidth=rect.Width();
    int nHeight=rect.Height();
    dc.BitBlt(0,0,nWidth,nHeight,&dcMem,rect.left,rect.top,SRCCOPY);


    // Do not call CWnd::OnPaint() for painting messages
    }
      

  2.   

    Windows 向窗口发送一个WM_ERASEBKGND 消息通知该窗口擦除背景,可以使用ClassWizard 重载该消息的缺省处理程序来擦除背景(实际是画),并返回TRUE 以防止Windows擦除窗口。
    BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)
    {
        CBrush Brush (RGB (128 , 0 , 128) );  // Create a pruple brush.
              // Select the brush into the device context .
        CBrush* pOldBrush = pDC—>SelcetObject (&brush);
        // Get the area that needs to be erased .
        CRect reClip ;
        pDC—>GetCilpBox (&rcClip);
        //Paint the area.
        pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
           //Unselect brush out of device context .
        pDC—>SelectObject (pOldBrush );
              // Return nonzero to half fruther processing .
        return TRUE;
    }上面的是改背景色,你用图片来创建一个画刷就是