Use GDI bitmap

Source: Internet
Author: User

The GDI bitmap is just another GDI object, such as a pen or font. You must first create a bitmap and then select it into the device environment. After modifying an object, you must unselect it and delete it.

Even so, there are still some problems because the "bitmap" of the display is actually the display surface image, and the "bitmap" of the printer device is the print page itself. Therefore, bitmap cannot be selected into the display device environment or printer device environment. You must use the CDC: createcompatibledc function to create a special memory device environment for bitmap. Then, use CDC: stretchblt or CDC: bitblt to copy these bits from the memory device environment to the "real" device environment.

Example:

void CBlat2View::OnDraw(CDC* pDC){   CBlat2Doc* pDoc = GetDocument();   ASSERT_VALID(pDoc);   // load IDB_BITMAP1 from our resources   CBitmap bmp;   if (bmp.LoadBitmap(IDB_BITMAP1))   {      // Get the size of the bitmap      BITMAP bmpInfo;      bmp.GetBitmap(&bmpInfo);      // Create an in-memory DC compatible with the      // display DC we're using to paint      CDC dcMemory;      dcMemory.CreateCompatibleDC(pDC);      // Select the bitmap into the in-memory DC      CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);      // Find a centerpoint for the bitmap in the client area      CRect rect;      GetClientRect(&rect);      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;      // Copy the bits from the in-memory DC into the on-      // screen DC to actually do the painting. Use the centerpoint      // we computed for the target offset.      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,          0, 0, SRCCOPY);      dcMemory.SelectObject(pOldBitmap);   }   else      TRACE0("ERROR: Where's IDB_BITMAP1?\n");}

Display ing mode: mm_text maps each bitmap pixel to a display pixel.

Mm_loenglish: the bitmap size will be 0.54*0.96 inch.

 

Note: The GDI objects include cbitmap, cbrush, cfont, cpalette, cpen, and crgn.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.