19,469
社区成员
发帖
与我相关
我的任务
分享
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BS2);
m_image1.SetBitmap(bitmap);
SetStretchBltMode(hDstDC,HALFTONE); //设置目标DC为HALFTONE模式
StretchBlt(hDstDC,0,0,iWidth2,iHeight2,hScrDC,0,0,iWidth,iHeight,SRCCOPY); //源位图DC拷贝到目标位图DC,使用拉伸模式
HBITBMP hBmpDst=(HBITMAP)SelectObject(hDstDC,hBmpDstOld); //获取目标DC位图
m_image1.SetBitmap(hBmpDst);
CDC memDC;//定义一个设备上下文
memDC.CreateCompatibleDC(pDC);//创建兼容的设备上下文
CBitmap bmp;//定义位图对象
bmp.LoadBitmap(IDB_BKBITMAP);//加载位图
memDC.SelectObject(&bmp);//选中位图对象
pDC->BitBlt(30,20,180,180,&memDC,1,1,SRCCOPY);//绘制位图
//以上是利用BitBlt来绘制位图
CRect rc(30,20,210,200);//定义一个区域
CBrush brush(RGB(0,0,0));//定义一个黑色的画刷
pDC->FrameRect(rc,&brush);//绘制矩形边框
//只是用来观察两者区别的,绘制一个矩形框
rc.OffsetRect(220,0);//移动区域
//下边是利用StretchBlt绘制的位图
BITMAP BitInfo;//定义位图结构
bmp.GetBitmap(&BitInfo);//获取位图信息
int x = BitInfo.bmWidth;//获取位图宽度
int y = BitInfo.bmHeight;获取位图高度
pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,0,0,x,y,SRCCOPY);//绘制位图
pDC->FrameRect(rc,&brush);//绘制边框
brush.DeleteObject();//释放画刷
memDC.DeleteDC();//释放设备上下文
bmp.DeleteObject();//释放位图对象