我是初学者,请高手不吝赐教,最好能具体到每一步怎么做,先谢过了!

解决方案 »

  1.   

    在onpaint函数内写如下代码:CPaintDC dc(this); // device context for painting
    // TODO: 在此处添加消息处理程序代码
    // 不为绘图消息调用 CDialog::OnPaint()
    CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP1);
    //得到图片信息 
    BITMAP bmpinfo;
    bmp.GetBitmap(&bmpinfo);
    //在内存中创建一个位图兼容设备
    CDC dcmemory; 
    dcmemory.CreateCompatibleDC(&dc);
    //将图片选入兼容设备 
    CBitmap *pOldBmp=dcmemory.SelectObject(&bmp);
    //将兼容设备的内容copy到屏幕设备中,实现真正的Paint 
    dc.BitBlt(0,0,bmpinfo.bmWidth,bmpinfo.bmHeight,&dcmemory,0,0,SRCCOPY);
    //将设备还原
    dcmemory.SelectObject(pOldBmp);
      

  2.   

    先载入一张图片,ID为IDB_BITMAP1 
    BMPDlg.h中
    CBrush m_brBk;//在public中定义
     
    BMPDlg.cpp中在初始化函数OnInitDialog()中加入: 
    BOOL CTestDlg::OnInitDialog() 

    CDialog::OnInitDialog(); 
    CBitmap bmp; 
    bmp.LoadBitmap(IDB_BITMAP1); 
    m_brBk.CreatePatternBrush(&bmp); 
    bmp.DeleteObject(); 
    return TRUE; // return TRUE unless you set the focus to a control 

     
    在打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下: 
    HBRUSH BMPDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 

                HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
                 
    if (pWnd == this) 

        return m_brBk; 

          return hbr;