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?
    ");
    }
  • 相关阅读:
    我的Java学习路线图
    请求重定向和请求转发的区别
    PHP代码审计学习-php安全基础
    无密码正向直连内网linux目标机复现
    Windows API 学习
    Http请求走私
    免杀手法-tcp套字节传递shellcode学习
    自启动模块构造-计划任务
    自启动模块构造-快速启动目录
    进程注入免杀学习
  • 原文地址:https://www.cnblogs.com/shanql/p/6574686.html
Copyright © 2011-2022 走看看