`
ladymaidu
  • 浏览: 681011 次
文章分类
社区版块
存档分类
最新评论

GDI+学习笔记之GDI+环境初始化

 
阅读更多

作者:朱金灿
来源:http://blog.csdn.net/clever101/


尽管以前接触过一下GDI+,但决心从现在开始系统学习GDI+,所用的教材为《精通GDI编程》。在VS 2010以下版本的VS 编译器使用GDI+都需要对GDI+环境进行初始化操作(VS 2010中的MFC 10依赖GDI+,故不用初始化)。

VS 2003、VS 2005和VS 2008的GDI+环境初始化操作步骤一样。


在应用程序类添加一个保护权限的数据成员:


在应用程序类的实现文件包含gdi+的头文件:



在工程附加库加上:GdiPlus.lib


然后在应用程序类的InitInstance加上下面初始化代码:




上面代码的作用是初始化GDI+资源。


在应用程序类的InitInstance加上下面代码:




上面代码的作用是销毁GDI+资源。


VC 6.0中使用GDI+库,请参考这篇文章:在VC6.0中使用GDI+的两种办法


现在测试一下我们初始化GDI+环境是否成功。我们使用GDI+的类接口在视图客户区绘制一个字符串,具体代码如下:




效果图如下:


gdiplus demo




使用GDI+一些注意事项:


1.在DLL中使用GDI+库,只需要包含GdiPlus.h和GdiPlus.lib,初始化GDI+环境的工作只需要在主调用程序做,否则在DLL初始化代码中初始化GDI+环境容易发生DLL重入的错误(以前我犯过这样的错误)。


2.GDI+接口参数使用的是unicode字符集,因为调用任何GDI+类接口时其字符串参数都必须确保是unicode字符。在多字节字符集环境下开发常量字符串可以通过L宏转换,变量多字节字符转unicode字符可以使用Windows API函数MultiByteToWideChar或ATL的A2W宏。


3. GDI+的对象和GDI句柄一样,同样会占用资源,一次使用过多的GDI+的对象甚至会发生程序崩溃的现象。因此必须随时将不必要的GDI+的对象占用的资源释放掉,如上例的:graphics.ReleaseHDC(pDC->m_hDC)。


























分享到:
评论

相关推荐

    GDI+学习笔记

    GDI+ 学习笔记, 学习 快乐之本

    GDI+游戏GDI+游戏GDI+游戏GDI+游戏GDI+游戏GDI+游戏

    C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战

    gdi+ 帮助文档

    如果学习GDI+开发的话,特别是初学者,强烈推荐下载. 对于初学者,还有一个问题就是,如果想要进行GDI+开发, 需要下载一个GDI+的开发包(SDK). 网上搜到的一般只包含一个DLL,没法用. 在我另外一个资源中提供了一个详细的...

    GDI+图像程序设计(PDF & 源码 -电子工业出版社)

    1.3 从GDI的角度学习GDI+ 1.4 .NET中的GDI+ 名称空间和类 总结 第2章 第一个GDI+ 应用程序 2.1 绘制表面 2.2 坐标系统 2.3 指南——第一个GDI+ 应用程序 2.4 一些基本的GDI+ 对象 总结 第3章 Graphics类 ...

    GDI+的说明 GDI+的说明 GDI+的说明 GDI+的说明

    GDI+的说明 GDI+的说明 GDI+的说明 GDI+的说明

    GDI+开发包 GDI+ SDK

    GDI+开发包,解压文件,并将其中的Includes和Lib中的文件复制到VS安装目录中VC98目录下的Includes和Lib文件夹中

    GDI+ 编程 学习和熟悉GDI+常用的数据结构和类

    了解 GDI+ 学习和熟悉GDI+常用的数据结构和类 探讨 GDI+ 中的对象:Pen、Brush 和 Color 通过 GDI+ 绘制线条、形状和文本 使用 GDI+ 显示图像

    GDI+SDK参考 GDI+SDK参考

    GDI+SDK参考 GDI+SDK参考 GDI+SDK参考 GDI+SDK参考 GDI+SDK参考

    GDI+学习之路

    Microsoft Windows GDI+ 是Windows XP和Windows Server 2003操作系统的子系统,它负责在屏幕和打印机上显示信息。GDI+是一个应用程序编程接口(API),它由一组C++类实现。基于Microsoft Win32的应用程序不能直接...

    gdi+ 学习资料

    学习gdi+的朋友要下载看看

    C#GDI+图形程序设计源码

    1.3 从GDI的角度学习GDI+ 1.4 .NET中的GDI+ 名称空间和类 总结 第2章 第一个GDI+ 应用程序 2.1 绘制表面 2.2 坐标系统 2.3 指南——第一个GDI+ 应用程序 2.4 一些基本的GDI+ 对象 总结 第3章 Graphics类 ...

    GDI+库以及使用方法

    其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类中添加...

    GDI+中发生一般性错误

    GDI+中发生一般性错误GDI+中发生一般性错误GDI+中发生一般性错误GDI+中发生一般性错误

    GDI+开发包 GDI+安装详解

    其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。 (2)在应用类中添加...

    GDI+ LIB ,GDI+ LIB

    GDI+LIB GDI+LIB GDI+LIB GDI+LIB

    GDI+双缓冲技术

    进入.NET时代,Windows的绘图技术也从GDI升级到了GDI+,从名字就能知道GDI+是对以前传统GDI绘图技术的一次升级,不过在微软几乎把所有的新技术都冠之.NET的情况下,GDI+竟然不叫做GDI.NET,还真让我感到有点意外了。...

Global site tag (gtag.js) - Google Analytics