如何在图片控件里显示图片啊  而且图片在你按按钮的时候可以更改另一幅图片  

解决方案 »

  1.   

    how old are u怎么老是你?
      

  2.   

    hehe  一个大二的学生啊  正做一个小东西  呵呵  有太多的问题所以就来问问啊 
      

  3.   

    通过CBitmap,HBITMAP,直接用OnPaint()绘制
    {
    CPaintDC dc(GetDlgItem(IDC_STATIC1)); //用此句,得到picture控件的DC,图像将被绘制在控件上      //  CDC dc;//  dc.m_hDC=::GetDC(NULL);  //若用此两句,得到的是屏幕的DC,图片将被绘制在屏幕///////////////////////////////////////////////////////    CRect rcclient;    GetDlgItem(IDC_STATIC1)->GetClientRect(&rcclient);    CDC memdc;    memdc.CreateCompatibleDC(&dc);      CBitmap bitmap;    bitmap.CreateCompatibleBitmap(&dc, rcclient.Width(), rcclient.Height());    memdc.SelectObject( &bitmap );    CWnd::DefWindowProc(WM_PAINT, (WPARAM)memdc.m_hDC , 0);    CDC maskdc;    maskdc.CreateCompatibleDC(&dc);    CBitmap maskbitmap;    maskbitmap.CreateBitmap(rcclient.Width(), rcclient.Height(), 1, 1, NULL);    maskdc.SelectObject( &maskbitmap );    maskdc.BitBlt( 0, 0, rcclient.Width(), rcclient.Height(), &memdc,         rcclient.left, rcclient.top, SRCCOPY);    CBrush brush;    brush.CreatePatternBrush(&m_bmp);    dc.FillRect(rcclient, &brush);              dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),              &memdc, rcclient.left, rcclient.top,SRCPAINT);    brush.DeleteObject();
    }
      

  4.   

    点按钮更换图片的时候,得到图片路径,重新加载图片即可
    {
    if( m_bmp.m_hObject != NULL )//判断
            m_bmp.DeleteObject();
    /////////载入图片
        HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), 
            "c://aaa.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE);
        if( hbmp == NULL ) 
            return FALSE;///////////////////////该断程序用来取得加载的BMP的信息////////////////////////    m_bmp.Attach( hbmp );    DIBSECTION ds;
        BITMAPINFOHEADER &bminfo = ds.dsBmih; 
        m_bmp.GetObject( sizeof(ds), &ds );
        int cx=bminfo.biWidth;  //得到图像宽度
        int cy=bminfo.biHeight; //得到图像高度
        /////////////////// ////////////////////////////////
    /////////////得到了图像的宽度和高度后,我们就可以对图像大小进行适应,即调整控件的大小,让它正好显示一张图片///////////////////////////
        CRect rect;
        GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);
        ScreenToClient(&rect);
        GetDlgItem(IDC_STATIC1)->MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小
    }