Tag: 相互转换 |
  • 1
预览模式: 普通 | 列表

GDI和GDI+对象的相互转换

  当然希望可以使用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,可以这样:

查看更多...

Tags: GDI和GDI+ 相互转换

分类:VC++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 940
  • 1