Attach、Detach和DeleteObject
来源:互联网 发布:c语言简单小游戏代码 编辑:程序博客网 时间:2024/05/20 23:03
1.CWnd Attatch和Detach的关系
2.CBitmap Detach和DeleteObject的关系
- HBITMAP
hBitmap; - CBitmap
bitmap; - BITMAP
bm; - bitmap.Attach(hBitmap);//由HBITMAP
得到关联的CBitmap - bitmap.GetBitmap(&bm);
// 由CBitmap 得到关联的BITMAP - hBitmap=(HBITMAP)bitmap.GetSafeHandle();//由CBitmap得到相关的HBITMAP
我给你说三种情况,但我们首先做一个假设,就是MFC封装的GDI类在析构时没有做任何动作,也就是说,它是个纯粹的“简单封装”,那么:
1.pBmp->Detach将使C++的对象与GDI对象分离开来,但二者都没有释放。此时必须分别用deletepBmp和DeleteObject将二者分别释放;
2.pBmp->DeleteObject将使GDI对象被释放,而C++对象本身不会释放。你可以用Attach重新使其与某个GDI对象关联,或者,用delete将其释放;
3.deletepBmp(注意,我们假定析构时不调用DeleteObject)将使C++对象消亡,而对应的GDI对象依然存在。要使GDI对象释放,必须再次调用DeleteObject。
注意上面说的第三种情况,在实际的MFC实现中,为了简化程序员的负担,在C++对象析构时,与之关联的GDI对象也会释放。我之所以这样假定,是为了让你明白C++对象与GDI对象的区别。
还有,new的东西不是在栈里,而是在堆里。
- Attach、Detach和DeleteObject
- Attach、Detach和DeleteObject
- Attach、Detach和DeleteObject
- Attach、Detach和DeleteObject
- Attach、Detach和DeleteObject
- attach和detach
- attach和detach
- attach和detach区别
- Attach()函数和Detach()函数
- GetOwner和Getparent,Attach和Detach
- 关于attach和detach的疑问
- 使用C# Detach和Attach 数据库
- MFC Attach()函数和Detach()函数
- Attach和Detach的简单说明
- MFC Attach()函数和Detach()函数
- #R_函数#attach()和detach()函数
- R语言中的attach()和detach()函数
- MFC Attach()函数和Detach()函数
- JavaScript数据绑定databind框架knockout
- 全能系统监控工具dstat
- algrothm_区别
- 以图搜图 看起来像它—图像搜索其实也不难
- 贝叶斯规划学习BPL
- Attach、Detach和DeleteObject
- git 入门
- iOS应用间跳转
- 常用shell整理
- Android 指令打开BT、WIFI
- 代码托管及版本控制平台:Bitbucket 和 Github
- (4)简单置换
- Filter mapping specifies an unknown filter name encodingFilter
- Apache配置同一IP不同端口映射