在VC中显示位图
来源:互联网 发布:windows 部署samba 编辑:程序博客网 时间:2024/05/17 01:06
CDC::BitBlt()
在VC中显示位图常用取BitBlt()方法,它是将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容。
虽然此方法的功能是这样的,但是我一直没有理解网上一些例子代码,不知道其用到的各DC和位图如何得到,及它们之间的关系。
今天工作中要将一些位图显示到窗口中,所以重要学习了一下。
我已经将要用的位图导入到工程资源中,所以我可以用:
CBitmap cbmp;
cbmp.LoadBitmap(IDB_BMP1);
这样得到一个CBitmap对象。
然后:
BITMAP bitmap;
cbmp.GetBitmap(&bitmap);
这样得到一个BITMAP对象,之所以要得到此对象是因为从其中可以得到位图的大小数据。
然后计算得到要在什么位置显示此位图(可以放在一个CRect rect;对象中)。
然后显示此位图,这是最重要的一步:
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
hOldBitmap = dcMemory.SelectObject(&cbmp);
pDC->BitBlt(rect.left,
rect.top,
bitmap.bmWidth,
bitmap.bmHeight,
&dcMemory,
0,0,
SRCCOPY);
其中pDC是一个CDC*,是将要在其中显示位图的设备环境。
这样位图就已经显示出来了,但是还要释放资源:
cbmp.DeleteObject();
dcMemory.SelectObject(hOldBitmap);
dcMemory.DeleteDC();
其中,要将临时设备环境选择入初始时位图,否则将不能正确释放!!
总结:
要在一个设备环境中显示位图,不能直接在上面“画”(目前我是我么觉得的),需要创建一个与之相兼容的新设备环境然后将位图选择入些新设备环境,然后再从些新设备环境中拷备位图以显示到正确的设备环境中。而选入这个动作相当与已经将位图“画在了临时设备环境中”(实际上并没有画,否则就可以直接选入要画图的CDC了),而且选入后位图在临时设备环境中的位置是左上角!
- 在VC中显示位图
- VC中显示位图
- 如何在VC中显示透明背景位图
- VC:在窗口中显示一幅位图
- VC中如何在对话框上显示位图
- VC学习——在窗口中显示位图
- VC 中位图的显示
- vc中显示位图、图标的方法
- VC中如何显示一张位图
- VC/MFC 如何将位图缩放显示在Static控件中
- 在VC中使用位图按钮
- vc 透明显示位图
- 位图文件显示(VC++)
- 在CStatic静态文本框中,显示位图,控制位图大小
- 在CStatic静态文本框中,显示位图,控制位图大小
- 在VC5中显示256色位图
- (转载)在程序中显示位图
- 在对话框中动态显示位图
- 一个开源的js多功能树插件
- u-boot2010.03 第一阶段--start.S
- 【游戏人生】一个游戏程序员的学习资料
- linux 下查看机器是cpu是几核的
- GNU C中不为人知的特色:__attribute__机制
- 在VC中显示位图
- CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- nmake 的 makefile
- 【在线研讨】《敏捷开发用户故事分类与组织结构(三期-5)》
- MindManager_10 思维导图-软件下载
- Apache Moin 404
- Button的点击事件
- 自做CAB 用系统软件 iexpress.exe 的过程
- Resin服务器配置及启动问题