GDI+编程基础【收集整理】

本文详细介绍了在MFC中使用GDI+进行编程的步骤,包括添加库文件、头文件、命名空间、成员变量的初始化与关闭,以及GDI+的资源管理和编程实例。讲解了GDI+的初始化、关闭函数GdiplusStartup和GdiplusShutdown的使用,以及GDI+中的点、大小和矩形等几何类的使用。
摘要由CSDN通过智能技术生成

  

一、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+编程实例

1GDI+程序设计步骤:
(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+的一个引用

CGDIPlusDemoAppInitInstance()函数中增加GDI+函数的初始化操作:

BOOL CGDIPlusDemoApp::InitInstance()
{

InitCommonControls();


//GDI+
系统资源的初始化
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL);

CWinApp::InitInstance(); // GDI+系统资源的初始化的代码需要放在该代码前

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值