首页 VC利用GDI

VC利用GDI

举报
开通vip

VC利用GDIVC利用GDI+显示透明的PNG图片 2008-12-29 08:03 2007-11-23 12:45 1.在你将要使用GDI+的工程中,完成初始化工作,将以下代码加入StdAfx.h头文件中: //加入的头文件 #include //初始化一下com口 #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #include "GdiPlus.h" using namespace Gdiplus; #endif #pragma comment(li...

VC利用GDI
VC利用GDI+显示透明的PNG图片 2008-12-29 08:03 2007-11-23 12:45 1.在你将要使用GDI+的工程中,完成初始化工作,将以下代码加入StdAfx.h头文件中: //加入的头文件 #include //初始化一下com口 #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #include "GdiPlus.h" using namespace Gdiplus; #endif #pragma comment(lib,"gdiplus.lib") 2.在程序初始化部分加入 //gdi+用到的两个变量   装载gdi+     GdiplusStartupInput m_gdiplusStartupInput;     ULONG_PTR m_pGdiToken;     GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL); 3.在程序退出部分前加入     //卸载gdi+     GdiplusShutdown(m_pGdiToken); 5在Project->stting->Link->Object/libary中加入gdiplus.lib 这样你的工程就可以使用GDI+了: void CPNGDlg::OnButton1() { pDC =GetDC(); Graphics graphics( pDC->m_hDC); Image image(L"walkman.png", FALSE); graphics.DrawImage(&image, 10,10); } GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。      遗憾的是,VC6.0并不能直接使用GDI+,下面介绍一种很方便的在VC6.0中使用GDI+的方法。步骤如下: 1.将GDI+.rar将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中; GDI+ for VC6.0 SDK下载地址: http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip 2.在你将要使用GDI+的工程中,完成初始化工作: 将以下代码加入StdAfx.h头文件中: //加入的头文件 #include //初始化一下com口 #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #include "GdiPlus.h" using namespace Gdiplus; #endif #pragma comment(lib,"gdiplus.lib") 3.在程序初始化部分加入 //gdi+用到的两个变量   装载gdi+     GdiplusStartupInput m_gdiplusStartupInput;     ULONG_PTR m_pGdiToken;     GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL); 4在程序退出部分前加入     //卸载gdi+     GdiplusShutdown(m_pGdiToken); 5在Project->stting->Link->Object/libary中加入gdiplus.lib 这样你的工程就可以使用GDI+了: void CPNGDlg::OnButton1() { pDC =GetDC(); Graphics graphics( pDC->m_hDC); Image image(L"walkman.png", FALSE); graphics.DrawImage(&image, 10,10); } 用GDI+如何显示透明背景的PNG文件?楼主ruchimy(泥秋)2005-05-26 17:16:14 在 VC/MFC / 图形处理/算法 提问 我使用如下代码:   ImageAttributes imAtt; imAtt.SetColorKey(Color(0,0,0),Color(10,10,10),ColorAdjustTypeDefault); graphics.SetSmoothingMode(SmoothingModeAntiAlias); Image imageBlue(TEXT(".\\res\\NumbersBlue.png")); graphics.DrawImage (&imageYear,Rect(cx,0,iYearWidth,iYearHeight),0,iYearHeight,iYearWidth,iYearHeight,UnitPixel,&imAtt);     显示的图片虽然是透明的,但边边有黑点.哪位高手能指点一下? 直接显示就可以了,   透明是GDI+自己处理的, 在VC6.0时边要加入以下三句到stdafx.h里边 #define ULONG_PTR ULONG #include using namespace Gdiplus; #pragma comment(lib,"gdiplus.lib") 不要再使用OleLoadPicture了,那会让你看起来很愚蠢。同样功能的函数,你看看GDI+会有几行: HRESULT ShowPic(const TCHAR* lpstrFile, HDC hDC, int X, int Y, int iWidth, int iHeight) { _ASSERT(lpstrFile); USES_CONVERSION; // Create bitmap object and load image auto_ptr pBmp(new Bitmap(CT2CW(lpstrFile))); if(!pBmp.get() || Ok != pBmp->LastStatus()) return E_FAILED; // Draw bitmap on DC Graphic grp(hDC); if(Ok != grp.DrawImage(pBmp.get(), X, Y, iWidth, iHeight)) return E_FAILED; return S_OK; } 在vc6.0中使用GDI+图形函数 作者:radcat    文章来源:本站原创    点击数:3422    更新时间:2007-3-10 15:42:48 原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=55&ID=102037 进来总看到一些网友提出一些关于图形处理方面的问题. 例如怎样使一个字符串透明输出,怎样放大,缩小或旋转一幅图片,或将一幅bmp图片保存为jpg 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 ,我总是回答使用GDI+图形函数,那么怎样使用呢? 下面是我写的一个简易教程,第一次写教程,难免有疏漏还请各位网友指正批评. GDI+图形函数,一个组在.net环境下提供的以取代GDI图形函数的类,将来会逐渐取代GDI图形函数. 如果在vc6.0中使用gdi+图形函数,那么请按以下步骤操作: 1.下载下面的rar文件将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中. 点击下载该文件 2新建一个工程(以winsdk框架为例mfc也相同) 将以下代码加入StdAfx.h头文件中 //加入的头文件 #include //初始化一下com口 #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #include "GdiPlus.h" using namespace Gdiplus; #endif //结束 3在程序初始化部分加入 //gdi+用到的两个变量     GdiplusStartupInput m_gdiplusStartupInput;     ULONG_PTR m_pGdiToken;     //装载gdi+     GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL); 4在程序退出部分前加入     //卸载gdi+             GdiplusShutdown(m_pGdiToken); 5在Project->stting->Link->Object/libary中加入gdiplus.lib 好了经过上面几步我们就可以在程序中使用GDI+了,先试一下吧! 显示一个透明字符串     Graphics mygraphics(hdc);//创建一个Graphics对象     SolidBrush brush(Color(100,0,0,255));//创建一个笔刷 第一项是透明度 后三项是RGB值     FontFamily fontFamily(L"Latha");选择一种字体     Font font(&fontFamily,1,FontStyleRegular,UnitInch);     PointF pointF(5,5);     mygraphics.DrawString(L"Hello Word!",-1,&font,pointF,&brush); 或显示一幅jpg图像 Graphics imgraphics(hdc); Image image(L"001.jpg"); imgraphics.DrawImage(&image,0,0); 注意要把001.jpg考到工程目录下 下面是一个例子有兴趣的可以下载 http://bbs.bc-cn.net/viewFile.asp?BoardID=55&ID=13660 以上是我写的,请望能给大家一些帮助
本文档为【VC利用GDI】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_402277
暂无简介~
格式:doc
大小:239KB
软件:Word
页数:6
分类:
上传时间:2012-02-08
浏览量:57