HBITMAP screenCapture()
{
    HBITMAP hbmpScreen;
    HDC hdcScreen = ::GetDC(NULL);    HDC hdcMem = ::CreateCompatibleDC(hdcScreen);    int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
    int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
    hbmpScreen = CreateCompatibleBitmap(hdcScreen,nScreenWidth,nScreenHeight);//获取屏幕位图    //把屏幕画到位图上
    ::SelectObject(hdcMem, hbmpScreen);
    ::BitBlt(hdcMem, 0, 0, nScreenWidth,nScreenHeight, hdcScreen, 0, 0, SRCCOPY);    //释放资源
    ::DeleteDC(hdcScreen);
    ::DeleteDC(hdcMem);
        return hbmpScreen;}
    以上是截一张正的图片   我需要一张完全倒转的图片   因为GetDIBits  扫数据储存是倒着的   所以下次 CreateBitmap时会倒着图片完全倒转的  谢谢指教

解决方案 »

  1.   

       LS回答好模糊啊 
    也就是GetDIBits 扫图片时图片时   储存的数据是倒着的  我该怎么让图片倒着 被函数扫~
      

  2.   

    GDI+可以旋转图像
    你把图像转一下再扫描不就是正的了
      

  3.   

    pDibBits指向你的图像数据,图像高 height,每行字节数 lineBytesBYTE* buf = new BYTE[lineBytes];
    for(int i=0; i<height/2; i++)
    {
    memcpy(buf,pDibBits+i*lineBytes,lineBytes);
    memcpy(pDibBits+i*lineBytes, pDibBits+(height-i-1)*lineBytes,lineBytes);
    memcpy(pDibBits+(height-i-1)*lineBytes,buf,lineBytes);
    }
    delete [] buf;
      

  4.   

    把BitmapInfo中的高度设成负高度试下。