对话框中背景图变化,位图在硬盘上,能够加载到对话框的背景上面,最好能有例程,谢谢

解决方案 »

  1.   

    用LoadImage函数就可以读入硬盘中的位图文件了。
      

  2.   

    在OnPaint函数里CPaintDC dc(this); // device context for painting

    CBitmap  bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);

    BITMAP bmpInfo;
    bitmap.GetBitmap(&bmpInfo); CDC dcMemory;
    dcMemory.CreateCompatibleDC(&dc); CBitmap *pOldBmp = dcMemory.SelectObject(&bitmap); dc.BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcMemory,0,0,SRCCOPY);
      

  3.   

    CDC m_dcMem;
    CBitmap m_bmMem;void CTest3Dlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here

    HBITMAP hBitmap = (HBITMAP)::LoadImage( NULL , "E:\\1.bmp" , IMAGE_BITMAP , 0 , 0 , LR_LOADFROMFILE);
    if(hBitmap == NULL) return;

    if(m_dcMem.GetSafeHdc() != NULL)
    m_dcMem.DeleteDC();
    if(m_bmMem.GetSafeHandle() != NULL)
    m_bmMem.DeleteObject(); m_bmMem.Attach(hBitmap); CDC *dc = GetDC();
    m_dcMem.CreateCompatibleDC( dc );
    m_dcMem.SelectObject(m_bmMem);
    ReleaseDC(dc);

    Invalidate();
    }
    void CTest3Dlg::OnDestroy() 
    {
    CDialog::OnDestroy();

    // TODO: Add your message handler code here
    if(m_dcMem.GetSafeHdc() != NULL)
    {
    m_dcMem.DeleteDC();
    }
    if(m_bmMem.GetSafeHandle() != NULL)
    {
    m_bmMem.DeleteObject();
    }
    }
    void CTest3Dlg::OnPaint() 
    {
    CPaintDC dc(this);
    if(m_dcMem.GetSafeHdc() != NULL )
    {
    CRect rc;
    GetClientRect(&rc);
    dc.BitBlt( 0 , 0 , rc.Width() , rc.Height() , &m_dcMem , 0 , 0 , SRCCOPY);
    }
    }