哇你怎么问起这个问题了啊LoadImage函数的几个参数可以控制
BitBlt也可以、、、、等我OICQ上告诉你!

解决方案 »

  1.   

    指定LoadImage,BitBlt,StretchBlt()的源左上角和右上角坐标,源宽,源高就可以了!
      

  2.   

    指定LoadImage,BitBlt,StretchBlt()的源左上角和右上角坐标,源宽,源高就可以了!
      

  3.   

    StretchBlt(hdc,0,200,100,300,fromdc,0,200,100,300,SRCCOPY);
    应该是这样,对吧 
      

  4.   


    首先将位图读到内存比如   lpDIBBits
    然后调用如下函数
    ::SetDIBitsToDevice(pDC->m_hDC,  // hDC
       0, // DestX
       0, // DestY
       bmInfo.bmiHeader.biWidth, // nDestWidth
       bmInfo.bmiHeader.biHeight, // nDestHeight
       0, // SrcX
       0, // SrcY
       0, // nStartScan
       bmInfo.bmiHeader.biHeight, // nNumScans
       lpDIBBits, // lpBits
       (LPBITMAPINFO)m_Data, // lpBitsInfo
       DIB_RGB_COLORS);  // wUsage用StretchBlt 不行,他会依据第4,5参数显示全部位图(拉长或缩小)
    至于如何将位图读到内存我这有个例子if you want please tell me your email
    good luck
      

  5.   

    CRect rc(0, 200, 100, 300)
    HDC hMemDC = ::CreateCompatibleDC(hScrDC);
    HBITMAP hOldBmp = (HBITMAP)::SelectObject(hMemDC, hMemBitmap);
    ::StretchBlt(hScrDC, nXScr, nYScr, nWidthScr, nHeightScr, hMemDC, rc.left, rc.top, rc.Width(), rc.Height, SRCCOPY);
    ::SelectObject(hMemDC, hOldBmp);
    ::DeleteDC(hMemDC);StretchBlt的作用就是将一个DC中的一部分拷贝到另一个DC
      

  6.   

    部分显示的问题基本解决,新问题 再加20分。我创建了一个内存位图 memDC, 区域为 CRect(0,200,100,300)
    那我想在位图中显示一幅图bitmap,大小为: CRect(0,0,50,100)
    怎么做呢? 
      

  7.   

    DC没有大小可言,是是是一个抽象的东西
    HBITMAP hBitmap = ::CreateCompatibleBitmap(hMemDC, nWidth, nHeight);
    建议多看MSDN,那是标准,也可以说是真理,你的问题上面都有答案(SDK部分):
    Platform SDK Documentation\Graphics and Multimedia Services\Windows GDI\Bitmaps
      

  8.   

    这个用不着DIB吧,一句BitBlt全解决了呀,就像dfbb(嘲风)说的。