zoukankan      html  css  js  c++  java
  • 位图的显示

    第一步:创建位图

      CBitmap bitmap;

      bitmap.LoadBitmap(IDB_BITMAP1);

    第二步:创建兼容DC

      CDC dcCompatible;

      dcCompatible.CreateCompatibleDC(pDC);

    第三步:将位图选入兼容DC中

      dcCompatible.SelectObject(&bitmap);

    第四步:将兼容DC中的位图贴到当前DC中

      BOOL StretchBlt(

        int x, int y,  //指定矩形显示区域的左上角的坐标

        int nWidth, int nHeight,  //指定矩形显示区域的宽度和高度

        CDC* pSrcDC,  //源设备上下文

        int xSrc, int ySrc,  //源矩形图像左上角的坐标

        int nSrcWidth, int nSrcHeight,  //源矩形图像的宽度和高度

        DWORD dwRop  //指定颜色复制模式

      );

    例:

    1、在工程的资源窗口中引入一张.bmp位图

    2、窗口的绘制过程包含两步:先擦除窗口背景,再对窗口重新进行绘制

      当擦除窗口背景时,程序会发送一个WM_ERASEBKGND消息,在工程的视图类中添加WM_ERASEBKGND消息的响应函数

       

    BOOL CGraphicView::OnEraseBkgnd(CDC* pDC) 
    {
        // TODO: Add your message handler code here and/or call default
        CBitmap bitmap;
        bitmap.LoadBitmap(IDB_BITMAP1);
    
        BITMAP bmp;
        bitmap.GetBitmap(&bmp);  //获得源矩形位图的宽度、高度信息
        
        CDC dcCompatible;
        dcCompatible.CreateCompatibleDC(pDC);
    
        dcCompatible.SelectObject(&bitmap);
    
        CRect rect;
        GetClientRect(&rect);
        //以1:1显示源位图
        //pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);
        //缩放显示源位图以适应矩形区域
        pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
        
        //return CView::OnEraseBkgnd(pDC); //这里应取消默认的再次擦除窗口背景的操作
        return TRUE;
    }
    
  • 相关阅读:
    备忘
    跨域问题思考
    个人理解的Lambda表达式的演化过程
    MySql 事务与锁
    Python连接MySQL
    将python虚拟环境移植到无法联网的电脑
    PyQt5+QtDesigner+fbs+python创建桌面程序
    Pycharm+Anaconda安装及配置
    一个极好的JavaScript学习网址
    Python GUI工具Tkinter以及拖拉工具Page安装
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/6914813.html
Copyright © 2011-2022 走看看