GDI和GDI+对象的相互转换
作者:admin 日期:2008-01-24
当然希望可以使用GDI+来完全代替GDI,再不济也只需要从GDI对象转到GDI+对象。但是就是有那么些工程,又要新技术新特性、又希望快速开发、又不肯丢弃旧版本的已有的功能。没办法,只能缝缝补补,咔哐碙啌...
一、CDC到Graphics只要这样:
Graphics g(pDC->GetSafeHdc());//只要能构造CDC句柄的MFC对象都可以
//CClientDC、CPaintDC,也都可以二、CBitmap到Graphics需要创建一个内存位图设备:
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(pDC);
MemBitmap.CreateCompatibleBitmap(pDC,size.cx, size.cy);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
Graphics g(MemDC.GetSafeHdc());
///… you can work with GDI+ … ///或者使用:
Bitmap::Bitmap(HBITMAP,HPALETTE)。
static?Bitmap?*FromHBITMAP(HBITMAP?hbm,HPALETTE?hpal);三、想要用Bitmap来打开图片,却又需要用GDI的绘图函数来操作(一般都为历史遗留问题),就需要将Bitmap对象转换到CBitmap,可以这样:
- 1






