初始化GDI+环境

来源:互联网 发布:mac版sai没有压感 编辑:程序博客网 时间:2024/04/28 03:58

http://www.vckbase.com/document/viewdoc/?id=451  用GDI+进行图像处理
http://www.vckbase.com/document/viewdoc/?id=446 MFC程序中显示JPG/GIF图
我的开发环境为 vc.net 2003, 下面我就来说一下在此开发环境中如何加载 GDI+ 开发环境, 如果您的开发环境为 VC 6 请参考本文结尾部分。

在标准的 MFC 开发环境中 MFC 是不支持 GDI+ 开发的, 要想使用 GDI+ 需要我们手工对程序做一些修改。原理我就不想说了, 感兴趣的朋友可以自己在网上搜一下相关的资料, 这里我只说实际的操作步骤。

vc.net 2003 (vc 7.0) 包含有 Gdi+ 的头文件和库文件, 头文件位于 VS.net 2003 安装目录\Vc7\PlatformSDK\Include 中, 以 Gdiplus 开头的 .h 文件, 库文件为 VS.net 2003 安装目录\Vc7\PlatformSDK\Lib 中的 gdiplus.lib 文件, 如果您的开发环境不包含这些文件, 您可以到网上下载 gdi+ SDK 安装到您的计算机中。

确定这点后,我们开始以一个 SDI 程序为例讲解 GDI+ 环境的加载方法。

首先新建项目: Visual C++ 项目-> MFC 应用程序 -> 单文档 为了方便我们默认建立一个以 CView 为视图类的应用程序, 以上步骤大家都应当很熟悉了。在我创建的程序中应用程序类为 CMyApp , 视图类为 CMyView。

将 GDI+ 加载到程序中

第一步. 包含头文件

我们需要首先将 gdi+ 的头文件包含到我们的工程中, 这里我们可以将 #include 语句放入 atdafx.h 头文件中, 打开 atdafx.h 文件, 加入如下语句 :
#include <gdiplus.h>
using namespace Gdiplus;

第二步. 为链接库输入库文件

在 类视图 的 项目图标 上单击鼠标右键, 在弹出的菜单中选择 属性 , 打开项目属性对话框。

选择 配置 为 所有配置, 设置 链接器 -> 输入 -> 附加依赖项 为 gdiplus.lib

第三步. 定义 CMyApp 类成员变量

在 CMyApp 类的头文件类定义中加入如下语句 :

ULONG_PTR m_gdiplusToken;

第四步. 在程序启动时初始化 gdi+

在 CMyApp 类的重载函数 CMyApp::InitInstance() 中加入如下语句 :

Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

第五步. 在程序终止时释放 gdi+

重载CMyApp 类的函数 CMyApp::ExitInstance() 并加入如下语句 :
Gdiplus::GdiplusShutdown(m_gdiplusToken);

完成上述五步, 您可以编译一下程序, 如果没有错误发生那么恭喜您, 您的 gdi + 环境已经成功地加载到了程序中, 下面您就可以开始使用 gdi+ 进行绘图了。

和使用 gdi 一样, 您可以在程序中任何可以取得设备描述表的地方使用 gdi+。这里我们选择 CMyView 类的 OnDraw 函数。

gdi+ 为我们定义了许多新的类, 各个类的说明您可以从 MSDN 中获取, 很详细。

我们在 CMyView 类的 OnDraw 函数中写入 :

 

void CMyView::OnDraw(CDC* pDC)
{
    Graphics graphics( pDC
->m_hDC);
    Image image(L
"c:\\test.png");
    graphics.DrawImage(
&image, 10,10);
}


Graphics graphics(pDC->m_hDC);

通过设备描述表句柄实例化一个 gdi+ Graphics 类成员

Image image(L"c:\\test.png");

创建 gdi+ Image 类成员加载一张图像文件

graphics.DrawImage(&image, 10,10);

在 x:10 y:10 的位置输出图片

Visual C++ 6.0

Visual C++ 6.0 开发环境并没有为 gdi+ 作准备 , gdi+ 的头文件和库文件并没有被包含在环境中, 需要您手工安装, SDK 您可以在 这里 下载到, 解压后将头文件和库文件分别放置于 VC 6.0 安装目录下的 Include 和 Lib 目录中。

在 VC6.0 中加载 gdi+ 同样遵循上面介绍的五步, 唯一不同的是 第一步 中我们还要加入一条语句, 也就是说我们要加入三条语句 :

 

#include <gdiplus.h>
using namespace Gdiplus;
#define ULONG_PTR ULONG

 

原因是 VC6 中没有 ULONG_PTR 类型。 除此以外其他步骤和 VC.net 中相同

原创粉丝点击