首页 > 其他 > 详细

位图的显示

时间:2017-05-28 00:50:43      阅读:455      评论:0      收藏:0      [点我收藏+]

第一步:创建位图

  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;
}

 

位图的显示

原文:http://www.cnblogs.com/zhouwanqiu/p/6914813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!