Hallo,
I need some help with this code that I found on the web.
The code works fine to do a Hardcopy of the complete screen.
But I would like to make a Hardcopy from a part of the screen, size of a rectangle that I would like to add to the code.
But I do not know how to do this, or to change the code.
Thank you for your help.
Best regards,
Thomas
// get the device context of the screen
HDC hScreenDC = CreateDC("DISPLAY", NULL, NULL, NULL);
// and a device context to put it in
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
int width = GetDeviceCaps(hScreenDC, HORZRES);
int height = GetDeviceCaps(hScreenDC, VERTRES);
// maybe worth checking these are positive values
HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC, width, height);
// get a new bitmap
HBITMAP hOldBitmap = (HBITMAP) SelectObject(hMemoryDC, hBitmap);
BitBlt(hMemoryDC, 0, 0, width, height, hScreenDC, 0, 0, SRCCOPY);
hBitmap = (HBITMAP) SelectObject(hMemoryDC, hOldBitmap);
// clean up
DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);
// now your image is held in hBitmap. You can save it or do whatever with it
//=========================== Drucken =================================================
CDC memDC;
CBitmap bitmap;
int maxw = pDC->GetDeviceCaps(HORZRES);
int maxh = pDC->GetDeviceCaps(VERTRES);
pInfo->m_rectDraw.SetRect(0,0,maxw,maxh);
if(!bitmap.Attach(hBitmap));
BITMAP bm;
bitmap.GetBitmap(&bm);
BOOL ok= memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&bitmap);
//----------------------------- Drucken ----------------------------------------------------------------------------
pDC->StretchBlt(0,0,6800,4800,&memDC,0,0,bm.bmWidth,bm.bmHeight, SRCCOPY);
//--------------------------------------------------------------------------------------------------------------------------
memDC.DeleteDC();
bitmap.DeleteObject();
//=======================================================================================
Thank you for your answer.
Yes, this works.
BitBlt(hMemoryDC, 5,41,10000,415, hScreenDC, 5, 41, SRCCOPY);
I think I have to do this, because the rest of the screen/bitmap is black.
I do not know how, can you help me.
pInfo->m_rectDraw.SetRect(
Best regards,
Thomas