zoukankan      html  css  js  c++  java
  • MFC中显示一张位图

    1、用类CBitmap加载位图

    2、创建内存DC, 将位图选进此内存DC

    3、调用BitBlt将内存DC的内容拷贝到其它DC(通知是显示DC)

    例子(来自MSDN):

    // This OnDraw() handler loads a bitmap from system resources,
    // centers it in the view, and uses BitBlt() to paint the bitmap
    // bits.
    
    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?
    ");
    }
  • 相关阅读:
    python2.7之打飞机(文末附素材链接)
    python画小猪佩奇
    什么叫递归
    DIV居中的几种方法
    什么是控制反转
    上传图片及时预览
    MVC与三层的区别
    From表单提交刷新页面?
    文件上传之form表单篇
    文件上传之伪Ajax篇
  • 原文地址:https://www.cnblogs.com/shanql/p/6574686.html
Copyright © 2011-2022 走看看