首页 > 代码库 > 位图的显示
位图的显示
第一步:创建位图
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; }
位图的显示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。