一、MFC使用GDI+编程设置
(1)增加静态库文件GdiPlus.lib
在VC2005“项目/*属性”菜单项,打开项目的属性页窗口,先选“所有配置”,再选“配置属性/链接器/输入”项。在右边上部的“附加依赖项”栏的右边,键入GdiPlus.lib 后按“应用”钮,最后按“确定”钮关闭对话框。
当然,我们也可以在代码中使用#pragma comment( lib, "gdiplus.lib" )实现对静态文件的引用。
(2)增加GDI+的头文件和命名空间
在需要用到GDI+的文件头加上下面两句
#include <gdiplus.h>
using namespace Gdiplus;
(3)增加成员变量
在应用程序类应用程序类(CGDIPlusDemoApp) 头文件中,声明一个成员ULONG PTR类型的变量:
ULONG_PTR m_gdiplusToken; // ULONG PTR 为int64 类型
(4)初始化操作
在该类的初始化函数CGDIPlusDemoApp::InitInstance() 中
加入以下代码来对GDI+进行初始化:
GdiplusStartupInput gdiplusStartupInput; //声明
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); //启动
注意:这两个语句必须加在应用程序类的InitInstance函数中的
CWinApp:: InitInstance ();
语句之前,不然以后会造成视图窗口不能自动重画、程序中不能使用字体等等一系列问题。
(5)关闭GDI+操作
在CGDIPlusDemoApp::ExitInstance() 函数(重写)中加入以下代码来关闭GDI +:
GdiplusShutdown(m_gdiplusToken);//关闭
====================================================
二、MFC使用GDI+编程实例
1、GDI+程序设计步骤:
(1)、在项目中引入GDI+的头文件,使用GDI+的命名空间。
(2)、初始化GDI+系统资源。
(3)、使用完毕之后,释放GDI+所使用的资源。
(4)、在编译时加入GDIplus.Lib库文件。
2、实例步骤:
(1)建立项目
打开Visual C++.NET,在菜单中点击“文件”|“新建”|“项目”,然后建立MFC的“单文档”应用程序,本文建立的项目名称为GDIPlusDemo。
(2)、在程序中使用GDI+命名空间
由于GDI+中使用了自己的命名空间(这可以从GDIplus.h头文件中看出GDI+对命名空间的定义),我们需要引入头文件,还要声明其命名空间,并且添加GDI+运行库(GDIplus.lib)支持。
具体方法是修改stdafx.h文件,在该头文件的结尾处加入下列的代码:
#include <GdiPlus.h> //引入GDI+头文件
using namespace Gdiplus; //使用GDI+的命名空间
#pragma comment( lib, "gdiplus.lib" ) //引入静态库文件
(3)、GDI+资源的初始化与销毁
在使用GDI+的资源之前,我们应该通过GdiplusStartup(启用GDI-资源)函数进行GDI+系统资源的初始化操作;而在程序结束前,我们也应该通过GdiplusShutdown(关闭GDI+资源)函数进行GDI+资源的销毁操作。
这两项工作,分别可以在CGDIPlusDemoApp应用类的InitInstance(初始化进程)函数和CGDIPlusDemoApp类的析构函数中进行。
首先需要在CGDIPlusDemoApp中增加一个全局变量,以表明对GDI+的一个引用,实现的代码如下:
ULONG_PTR gdiplusToken; //全局变量,表明对GDI+的一个引用
在CGDIPlusDemoApp的InitInstance()函数中增加GDI+函数的初始化操作:
BOOL CGDIPlusDemoApp::InitInstance()
{
InitCommonControls();
//GDI+系统资源的初始化
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL);
CWinApp::InitInstance(); // GDI+系统资源的初始化的代码需要放在该代码前