首页 GDIPlus的配置

GDIPlus的配置

举报
开通vip

GDIPlus的配置我领会的GDI+ 我领会的GDI+ GDI+(GDIPlus)的功能: (1)​ 二维矢量图形的绘制. 比如直线,矩形,圆,椭圆,点等等.它和GDI的不同之处在于它能在点定在浮点数之处.GDI中绘制直线: drawline(int a,int b); 而GDI+有很多重载函数.参数类型接受的范围广了. (2)​ 象素绘制功能 很方便实现图像的缩放,剪裁,翻转,复制,格式的转换等功能. (3)​ 文字编排 强大的字体类(Font)可以轻松设置各种字体. GDI+包括40多个类,50多个枚举,6个结构体,及一些独立函数...

GDIPlus的配置
我领会的GDI+ 我领会的GDI+ GDI+(GDIPlus)的功能: (1)​ 二维矢量图形的绘制. 比如直线,矩形,圆,椭圆,点等等.它和GDI的不同之处在于它能在点定在浮点数之处.GDI中绘制直线: drawline(int a,int b); 而GDI+有很多重载函数.参数类型接受的范围广了. (2)​ 象素绘制功能 很方便实现图像的缩放,剪裁,翻转,复制,格式的转换等功能. (3)​ 文字编排 强大的字体类(Font)可以轻松设置各种字体. GDI+包括40多个类,50多个枚举,6个结构体,及一些独立函数. Graphic类, Pen类Brush类, Image类, Bitmap类, Font类, Rect类, Point类, Size类, Color类, BitmapData类 ,等等.还有一些独立函数,比如: GdiplusStartup , GdiplusShutdown, 它们的功能是用于GDI+环境的初始化和GDI+资源的释放. Visual C++ 6 . 0 环境中配制GDI+方法: (1)​ 下载GDI+SDK, 从http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip或者从微软网站下载. (2)​ 解压GDIPlus.zip,将其中的Includes文件夹和Lib文件夹下的文件分别放入VC98目录下的Includes文件夹和Lib文件夹中. (3)​ 在项目属性中添加GDI+静态炼接库. 打开工程选择[project]菜单[Settings],在下拉列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 框中选择Win32Debug,右侧link标签页下的Object/librarymodules输入gdiplus.lib ,单击ok. (4)​ 添加必要代码. 1.​ 打开资源管理器,打开”stafx.h”文件,在其中添加如下代码: #ifndef ULONG_PTR #define ULONG_PTR unsigned long * #include “Gdiplus.h” using namespace Gdiplus; #endif 2.​ 打开视图类,选择应用程序类CXXXApp(XXX为项目名称),为其添加两个成员变量. 第一个:GdiplusStartupInput类型的 m_GdiplusStartupInput 第二个: ULONG_PTR 类型的 m_GdiplusToken 3.​ 在CXXXApp类中的InitInstance函数中添加如下代码: // 图像库初始化 GdiplusStartup(&m_GdiplusToken , &m_GdiplusStartupInput , NULL); 4.​ 重写CXXXApp类的 ExitInitInstance函数 int CXXXApp:: ExitInitInstance() { // 关闭GDI+图象库 GdiplusShutdown(m_GdiplusToken); return CWinApp:: ExitInstance(); } Visual C++ 2005环境中配制GDI+方法: (因为Visual C++2005中已经含有GDI+开发包,因此不用下载GDI+SDK.) (1)在项目属性中添加静态链接库。打开项目,选择[project]菜单[xxx属性](xxx是项目名称),打开项目属性对话框,展开左侧的配置属性,选择连接器下的输入,然后在右侧的附加依赖项中添加“ gdiplus.lib ” ,单击 确定。 (2)打开资源管理器,打开”stafx.h”文件,在其中添加如下代码: #include using namespace Gdiplus ; (3)打开视图类,选择应用程序类CXXXApp(XXX为项目名称),为其添加两个成员变量. 第一个:GdiplusStartupInput类型的 m_GdiplusStartupInput 第二个: ULONG_PTR 类型的 m_GdiplusToken (4)在CXXXApp类中的InitInstance函数中添加如下代码: // 图像库初始化 GdiplusStartup(&m_GdiplusToken , &m_GdiplusStartupInput , NULL); (5)重写CXXXApp类的 ExitInitInstance函数 int CXXXApp:: ExitInitInstance() { // 关闭GDI+图象库 GdiplusShutdown(m_GdiplusToken); return CWinApp:: ExitInstance(); } GDI+环境配置与使用方法(初级) 简介:本文主要针对VC++.NET程序开发人员,如果使用VC++6.0,那么需要下载微软的GDIPLUS支持包(如果使用VS2003或以上版本则不需要下载GDIPLUS支持包了,因为它本身已包含了这些文件)。在微软官方网站下载时需认证Windows为正版,另外我们可从这个地址下载:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip 一个完整的GDI+支持包至少包括如下文件:  (1)头文件:gdiplus.h   (2)动态链接库的.lib文件:gdiplus.lib   (3)动态链接库的.dll文件:gdiplus.dll   少了(1)、(2)程序不能编译,少了(3)程序能以共享DLL的方式编译但是不能运行,运行时找不到.dll文件。 一、问题是什么? 对于刚刚接触GDI+的朋友来说,学习GDI+环境配置与使用方法是必需的,本文档主要介绍这两方面的内容。至于GDI+的最初入门教程可以参考pdf文档《Windows GDI+的研究与应用》,这是介绍GDI+功能与性能特点及其前身GDI的内容文章,建议在阅读本文档前先参阅。 二、解决问题的方法 1、 GDI+环境配置 (1)、在VS2003中建立一个MFC工程项目,项目名称可以为:gdiplusTest (2)、在文档stdafx.h中加入代码: //导入gdiplus库文件,一般代码放在代码#pragma once的下一行 #pragma once #pragma comment(lib,"gdiplus.lib") //导入gdiplus头文件,一般放在头文件存放处,注意位置要存放正确。 //下面这句代码已存在,无需COPY,这里是为了说明再下面代码的存在位置。 #include< afxcmn.h> //Windows 公共控件的 MFC #include< gdiplus.h> // 导入gdiplus头文件 using namespace Gdiplus; // 使用Gdiplus命名空间,避免命名歧议 (3)、在文档gdiplusTest.h即 CApp类头文件定义 ULONG_PTR m_gdiplusToken; public: virtual int ExitInstance();//在CApp类重载ExitInstance()函数 (4)、在文档gdiplusTest.cpp即CApp类源文件中 在函数InitInstance()中添加如下代码: //源代码中已经存在这句代码,这里是为了说明下面代码的存放位置 CWinApp::InitInstance(); //初始化GDI+对象 Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL); 在函数ExitInstance()中添加如下代码: //关闭与释放GDI+资源 Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); 2、 GDI+初级使用方法(画矩形) 前面的工作都是为了能够用GDI+画图做准备,下面给出一个用GDI+画矩形的简单例子,初步了解如何使用GDI+进行画图。 在gdiplusTestView.cpp文件,即CView类中 在函数OnDraw(CDC* pDC)中加入代码如下:(在CView类其他函数中下面代码一样有效) //以下两行代码可以用一行代码Graphics graphics(pDC->m_hDC); 代替 //之所以用下面两行代码是为了更具有通用性,它在CView类所有函数里都能使用 CClientDC dc(this); //获得客户区域dc Graphics graphics(dc); //GDI+绑定dc,这样就能使用变量graphics画图啦 //GetClientRect(&lpRect); //RECT lpRect;//获得客户区域 Pen pen(Color::Red,1.0f);//设置红色画笔,笔的宽度的1.0 int startX = 0; //矩形左上角顶点X坐标 int startY = 0; //矩形左上角顶点Y坐标 int width = 100; //矩形的宽 int height = 200; //矩形的高 graphics.DrawRectangle(&pen,startX,startY,width,height);//画矩形 三、问题的深入学习 要想进一步学习GDI+技术,这些知识是远远不够的,应该找系统的教程与资料来进一步学习,下面介绍二个很好的学习网站,主要是讲解VC++.NET与GDI+技术结合的入门与提高。 网站一:Windows GDI和GDI+编程实例剖析 http://dev.yesky.com/255/2190255.shtml 网站二:Visual C .NET与 GDI+ 编程基础 http://www.2ed.cn/Article-156-23415.shtml //stdafx.h内要添加如下内容: //GDI+ #define UNICODE #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include "d:\gdi+\includes\gdiplus.h" ////请?修T改?为a你?的Ì?头ª¡¤文?件t路¡¤径? using namespace Gdiplus; #pragma comment(lib, "d:\\gdi+\\lib\\gdiplus.lib") ////请?修T改?为a你?的Ì?.lib文?件t路¡¤径? // This macro is the same as IMPLEMENT_OLECREATE, except it passes TRUE // for the bMultiInstance parameter to the COleObjectFactory constructor. // We want a separate instance of this application to be launched for // each automation proxy object requested by automation controllers. #ifndef IMPLEMENT_OLECREATE2 #define IMPLEMENT_OLECREATE2(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ AFX_DATADEF COleObjectFactory class_name::factory(class_name::guid, \ RUNTIME_CLASS(class_name), TRUE, _T(external_name)); \ const AFX_DATADEF GUID class_name::guid = \ { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; #endif // IMPLEMENT_OLECREATE2
本文档为【GDIPlus的配置】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_819801
暂无简介~
格式:doc
大小:48KB
软件:Word
页数:6
分类:互联网
上传时间:2011-06-01
浏览量:46