码迷,mamicode.com
首页 > 其他好文 > 详细

位图的显示

时间:2017-05-28 00:55:34      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:client   工程   指定   int   png   分享   ase   get   绘制   

第一步:创建位图

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

 

位图的显示

标签:client   工程   指定   int   png   分享   ase   get   绘制   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!