GDI+ GDIPlus 的配置

本文深入探讨了GDI+的功能特性,包括二维矢量图形的绘制、像素绘制、文字编排等,并详细介绍了在Visual C++不同版本环境下配置GDI+的方法。通过提供具体的步骤和代码示例,旨在帮助开发者高效利用GDI+进行图形界面开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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],在下拉列表框中选择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++ 2005200820102012环境中配制GDI+方法:

如果没有GDI+的开发包先去下载,不过自VS2005后的版本都已经包含了GDI+开发包,应该不用下载。(因为Visual C++2005中已经含有GDI+开发包,因此不用下载GDI+SDK.)

(1)在项目属性中添加静态链接库。打开项目,选择[project]菜单à[xxx属性](xxx是项目名称),打开项目属性对话框,展开左侧的配置属性,选择连接器下的输入,然后在右侧的附加依赖项中添加“ gdiplus.lib ” ,单击 确定

(2)打开资源管理器,打开”stafx.h”文件,在其中添加如下代码:

      #include <gdiplus.h>

      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();

       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值