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 

 

四、总结问题

    学习与总结是个永恒的话题,让我们共同学习,共享经验,共创未来。

你可能感兴趣的:(windows,.net,文档,mfc,程序开发,GDI+)