网上看到的都是类似这样的CDC MemDC;
//CBitmap对象
CBitmap Bitmap,*pOldBitmap;
//BITMAP句柄
BITMAP bm;
//加载位图
Bitmap.LoadBitmap(IDB_BITMAP1);
//将位图资源与句柄绑定
Bitmap.GetObject(sizeof(BITMAP),&bm);
//创建与内存兼容的DC
MemDC.CreateCompatibleDC(pDC);
//替换原位图
pOldBitmap=(CBitmap*)(MemDC.SelectObject(&Bitmap));
//获取绘制的区域
CRect rcClient;
GetClientRect(&rcClient);
//绘制到客户区
pDC->BitBlt(0,0,rcClient.Width(),rcClient.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
MemDC.DeleteDC();对其中的红字部分不太理解,这句的具体作用是什么?我试着去掉了,也没发现什么问题。另外,如果位图大小与对话框尺寸不一样,我如何能让位图拉伸、压缩铺满整个对话框呢?
//CBitmap对象
CBitmap Bitmap,*pOldBitmap;
//BITMAP句柄
BITMAP bm;
//加载位图
Bitmap.LoadBitmap(IDB_BITMAP1);
//将位图资源与句柄绑定
Bitmap.GetObject(sizeof(BITMAP),&bm);
//创建与内存兼容的DC
MemDC.CreateCompatibleDC(pDC);
//替换原位图
pOldBitmap=(CBitmap*)(MemDC.SelectObject(&Bitmap));
//获取绘制的区域
CRect rcClient;
GetClientRect(&rcClient);
//绘制到客户区
pDC->BitBlt(0,0,rcClient.Width(),rcClient.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBitmap);
MemDC.DeleteDC();对其中的红字部分不太理解,这句的具体作用是什么?我试着去掉了,也没发现什么问题。另外,如果位图大小与对话框尺寸不一样,我如何能让位图拉伸、压缩铺满整个对话框呢?
解决方案 »
- 图像处理车型检测问题,求高手指点!
- HOOK程序中不能进行写文件的操作吗?能的话给出个例子好吗
- DataGrid 控件显示数据库里的一个记录集问题 在线等 急急 有答案即结帖
- 请问在VC中有没有函数或工具读取.ini文件中的信息呢?
- 小问题!来看看!!up有分!
- 高分求教:一个很专业的问题,小弟谢谢了。
- 怎样在DATAGRID控件的每一行的左边显示行号?
- pe文件是如何得到--动态调用的dll的函数入口,动态调用的dll信息是不包含在pe文件头里的吧?
- 如何获取windows外部版本号,如版本2002
- 怎么才能知道有新进程启动了(除了Hook CreateProcess之外)
- Internal error(20014) Assertion failed: file_name && fmt && og_handle, file .\sy
- 学com组件,看啥书入门?
位图缩放,吧bitblt换成StretchBlt,注意这时你就需要bm里的位图尺寸信息了。
pDC->StretchBlt(0,0,rcClient.Width(),rcClient.Height(),&MemDC,
0,0, bm.bmWidth, bm.bmHeight,
SRCCOPY);