HDIB DIB::JiequBMP(HANDLE hDIB)
{   
HANDLE hNewDIB;//close???有内存的问题没?????
LPBYTE  lpS,lpD;
LPBITMAPINFOHEADER lpbi,lpbinew;//参数后带new的是新图像的参数
WORD wBytesPerLine,wBytesPerLinenew;
long lOffset,lOffsetnew;

wBytesPerLine = this->BytePerLine(hDIB);
lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
//我选择矩形的区域,rtdesti是我在原背景图像中拖出的矩形框,想把这个矩形框的图像变成新的图像
long l,t,h,w,R,G,B;
DWORD newsizeimage;
l=rtdesti.left;
t=rtdesti.top;
    w=rtdesti.Width();
    h=rtdesti.Height();
wBytesPerLinenew=WIDTHBYTES(w*24);
newsizeimage=wBytesPerLinenew*h;
hNewDIB = GlobalAlloc(GHND,sizeof(BITMAPINFOHEADER)+newsizeimage);
lpbinew = (LPBITMAPINFOHEADER)GlobalLock(hNewDIB);
    
lpD = (LPBYTE)GlobalLock(hNewDIB);
lpS = (LPBYTE)lpbi;
memcpy(lpD,lpS,sizeof(BITMAPINFOHEADER));
lpS = lpS+sizeof(BITMAPINFOHEADER);
lpD = lpD+sizeof(BITMAPINFOHEADER);
    lpbinew->biHeight=h;
lpbinew->biWidth=w;
lpbinew->biSizeImage=newsizeimage;
for(int i=t;i<t+h;i++)
{
for(int j=l;j<l+w;j++)
{
lOffset = this->PixelOffset(i,j,wBytesPerLine);
        R = *(lpS+lOffset++);
        G = *(lpS+lOffset++);                
        B = *(lpS+lOffset++); 
lOffsetnew= this->PixelOffset(i-t,j-l,wBytesPerLinenew);
        *(lpD+lOffsetnew++)=R;
        *(lpD+lOffsetnew++)=G;
        *(lpD+lOffsetnew)=B;
}
}
    GlobalUnlock(hDIB);
    GlobalUnlock(hNewDIB);
    GlobalFree(hDIB);
    return hNewDIB;    
     
}