troubleshooting Question

Need some help with rectangle of a bitmap

Avatar of Thomas Stockbruegger
Thomas StockbrueggerFlag for Germany asked on
Visual C++.NET* MFCC++
5 Comments1 Solution183 ViewsLast Modified:
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,

        // 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

        // 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);

       BITMAP bm;
       BOOL ok= memDC.CreateCompatibleDC(pDC);

       //----------------------------- Drucken ----------------------------------------------------------------------------
        pDC->StretchBlt(0,0,6800,4800,&memDC,0,0,bm.bmWidth,bm.bmHeight, SRCCOPY);
Join our community to see this answer!
Unlock 1 Answer and 5 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 5 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros