bmp图像,如何将图像拉伸到整个客户区

解决方案 »

  1.   

    bitblt好像不能实现图像的拉伸,只能缩小,不能成比例的增大
      

  2.   

    在视图中这样写:
       CClientDC dc(this);
       CRect rect;
       GetClientRect(rect);
       CBitmap bmp;
       bmp.LoadBitmap(ID_BITMAP1/*此为Bmp的资源值*/);
       CDC mem;
       mem.CreateBitmap(&dc);
       CBitmap* pOld = mem.SelectObject(&bmp);
       dc.SetStretchMode(COLORONCOLOR);
       dc.StrecthBlt(/*惨书记不太清楚了,请看Msdn*/);
       //释放内存
       
          
      

  3.   

    对了,图像的大小可以直接从CBitmap 的成员函数GetBitmap中得到,传递参数为一个BITMAP的结构,包括大小
      

  4.   

    CClient dc(this);
    HBITMAP bitmap;
    bitmap=(HBITMAP)LoadImage(NULL,"SAMPLE.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    HBITMAP OldBitmap;
    CDC MemDC;CRect rect;
    MemDC.CreateCompatibleDC(&dc);
     GetClientRect(rect);
    OldBitmap=(HBITMAP)MemDC.SelectObject(bitmap);
       dc.StrechBlt(rect.lift,rect.top,rect.Width()0,rect.Height(),&MemDC,bmprect.lift,bmprect.top,bmprect.right.bmprect.buttom,SRCCOPY);
    MemDC.SelectObject(OldBitmap);
    // CRect bmprect 内放的是要显示bmp文件的范围(可以是局部)