常用的GDI+ 函数使用例子
2012-02-19 15:05
197 查看
一、通过Gdi+加载和显示PNG,JPG等格式的图片
二、实现一个渐变的画刷
//直接加载外部的图像
Image* image = new Image(L"test.png"); //如果需要通过ID 来加载的话
BOOL CSmalltmpdemoDlg::ImageFromIDResource(UINT nID, LPCTSTR sTR, Image * & pImg) { HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // type if (!hRsrc) return FALSE; // load resource into memory DWORD len = SizeofResource(hInst, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc); if (!lpRsrc) return FALSE; // Allocate global memory on which to create stream HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len); BYTE* pmem = (BYTE*)GlobalLock(m_hMem); memcpy(pmem,lpRsrc,len); IStream* pstm; CreateStreamOnHGlobal(m_hMem,FALSE,&pstm); // load from stream pImg=Gdiplus::Image::FromStream(pstm); // free/release stuff GlobalUnlock(m_hMem); pstm->Release(); FreeResource(lpRsrc); return TRUE; }
//调用方式
Image * pImage = NULL; ImageFromIDResource(IDR_PNG_NO_PIC, L"png", pImage); delete pImage; ///////////////////////////////////////////////////////////////////////// Image * pImage = NULL; ImageFromIDResource(IDR_PNG_NO_PIC, L"jpg", pImage); delete pImage; ////////////////////////////////////////////////////////////////////////// Image * pImage = NULL; ImageFromIDResource(IDR_PNG_NO_PIC, L"bitmap", pImage); delete pImage;
二、实现一个渐变的画刷
CClientDC dc(this); CRect rect; //获得当前客户区的大小 GetClientRect(&rect); //创建Graphics对象 Graphics graphics(dc); //创建渐变画刷 LinearGradientBrush lgb(Point(0, 0), Point(rect.right, rect.bottom), Color ::Blue, Color::Green); //填充 graphics.FillRectangle(&lgb, 0, 0, rect.right, rect.bottom);
相关文章推荐
- 常用的GDI+ 函数使用例子
- 常用的GDI+ 函数使用例子
- VC API常用函数简单例子大全十一
- 常用的对话框函数使用
- perl 常用函数(2)-可供查阅使用
- 使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集
- BIEE11G常用函数及使用说明
- Qt使用一个事件队列对所有发出的事件进行维护(QObject的event()函数相当于dispatch函数),用EventLabel 继承QLabel作为例子(简单明了) good
- salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用
- map函数使用例子
- 非分离线程未使用join函数例子:
- C++中的常用数学函数使用总结
- oracle数据库常用函数:replace translate函数使用
- 使用Method swizzling方法修改常用函数行为
- spark sortByKey subtractByKey take takeOrdered等函数使用例子
- Python random模块(获取随机数)常用方法和使用例子
- linux 下epoll与线程池结合使用的简单实例(含常用函数解释)
- MYSQL数据库学习十三 使用MySQL常用函数
- 第31课 Python列表的基本操作使用与常用函数
- VC API常用函数简单例子大全一