HBITMAP CXXXDialog::GetPartBitmap(HDC hSrcDC, LPRECT rect)
{
HBITMAP hBitmap, hOldBitmap;
HDC hMemDC;
int width, height;
width = abs(rect->right-rect->left);
height = abs(rect->bottom-rect->top);
hMemDC = CreateCompatibleDC(hSrcDC);
hBitmap = CreateCompatibleBitmap(hSrcDC, width, height);
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
int left = rect->left>rect->right?rect->right:rect->left;
int top = rect->top>rect->bottom?rect->bottom:rect->top;
BitBlt(hMemDC, 0, 0, width, height, hSrcDC, left, top, SRCCOPY);
hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
DeleteDC(hMemDC);
return hBitmap;
}