其实这个也没有什么用,毕竟已经是过时的技术了。不过技术的更新跟实际的使用还是有差距了,免不了还是要用这种过时的技术,所以还是记录下来,方便以后查阅。
  GDI+没记错的话是跟随XP诞生的,是XP系统上的图形绘制系统(以前的是GDI),GDI+相对于GDI提供了一些新的特性,比如渐变的画刷,支持多种图像格式等等。不过我觉得最大的变化,还是编程模型上的变化。GDI+使用了面向对象的思想,对接口进行了类封装,使用更加方便。
  在应用程序中使用GDI+库应该遵循一下步骤:
  1.包含Gdiplus.h头文件,如果图方便,加上:using namespace Gdiplus;这样使用GDI+中的任何东西就不需要重新指定命名空间了。
  2.链接DLL的导入库Gdiplus.lib。在VS中有两种方法,一是直接在项目属性->链接->输入中填入Gdiplus.lib;二是直接使用编译器原语:#pragma comment(lib, "Gdiplus.lib")
  3.在调用任何GDI+函数前一定要调用GDI+库初始化函数GdiplusStartup(),初始化GDI+库。
  4.在确定不需要使用任何GDI+函数并且所有GDI+对象均已销毁(变量超过了生存期),需要调用GDI+关闭函数GdiplusShutdown()。GDI+支持多线程,所以可以在任意一个线程中调用。

  下面讲下在实际MFC 单/多文档程序中,如何使用GDI+图形系统(程序名叫:GdiplusTest)。
  1.在Stdafx.h头文件中添加如下代码

#include <GdiPlus.h>#pragma comment(lib, "Gdiplus.lib")

  2.在CGdiplusTestApp类中,添加两个变量,用于GDI+初始化函数。

private:Gdiplus::GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplusToken;

  3.在CGdiplusTestApp::InitInstance()函数中添加如下代码,一定要在pMainFrame->ShowWindow(m_nCmdShow)之前,建议添加在CWinAppEx::InitInstance()之后。

// Initialize GDI+.Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

  4.重载CGdiplusTestApp的ExitInstance()函数,然后添加GDI+关闭函数。

Gdiplus::GdiplusShutdown(gdiplusToken);

  5.在CGdiplusTestView::OnDraw(CDC* pDC)函数中使用GDI+类,显示图片lena.jpg

Gdiplus::Graphics graphics(pDC->GetSafeHdc());Gdiplus::Image image(L"lena.jpg");graphics.DrawImage(&image, 10, 10);

GDI+ 使用指南(basic guiding of GDI plus )相关推荐

  1. cimage和gdi绘图效率比较_GDI+和GDI绘图性能对比实验

    龙源期刊网 http://www.qikan.com.cn GDI+ 和 GDI 绘图性能对比实验 作者:王克茹 来源:<科技创新与应用> 2013 年第 25 期 摘 要:本文通过完全相 ...

  2. GDI+入门(5、在GDI+中绘制带动画效果的图片)

    五.在GDI+中绘制带动画效果的图片 private void Form2_Load(object sender, EventArgs e) { SetStyle(ControlStyles.Doub ...

  3. Win32 GDI 学习总结

    Windows GDI 教程(一) 一个简单的绘图程序 http://www.tuicool.com/articles/jeMBZ3v 常见的图形编程库,除了 GDI 外还有 GDI+.OpenGL. ...

  4. Direct2D开发:Direct2D 和 GDI 互操作性概述

    本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页).有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标, ...

  5. GDI+编程说明及小结

    原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...

  6. GDI 泄漏检测方法

    方法一 1.打开电脑的[任务管理器],选择[进程]页,点击菜单项的[查看]项,选择[选择列]: 2.勾选[GDI对象(J)]即可. 3.此时,用户就可以在进程中看到每个进程对应的GDI对象,每个进程的 ...

  7. Android核心分析之二十三Andoird GDI之基本原理及其总体框架

     Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了.但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理. GDI主 ...

  8. MFC中的GDI绘图

    MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...

  9. CImage 是基于GDI+的,很老的一篇文章,我很久很久以前看到过的

    在许多资料上都说CImage类是基于GDI+的,但是为什么是基于GDI+的呢? 因为使用这个类时,并没有加入#include <gdiplus.h> ,也没有在程序开始和结束时分别写GDI ...

最新文章

  1. Java中的executeQuery,java连接数据库executeUpdate() 和executeQuery()
  2. Linux之不删除指定文件夹,其他都删(文件和文件夹)
  3. cassandra 集群并发测试脚本
  4. 如何将PHP对象数组转换成普通数组
  5. lucene 学习一
  6. redis-数据类型与应用
  7. C# 中的委托和事件[转]
  8. IBASE change related BDOC generation
  9. 常用 SQL Server 规范集锦
  10. android学习笔记42——图形图像处理2——绘图
  11. Shawn找到组织了!!!!!!!!
  12. 自动化测试 (二) 连连看外挂
  13. ac命令行隐藏ssid_胖AP性能,多SSID,SSID隐藏,评测小结
  14. stm32h7高速通信_【STM32H7教程】第48章 STM32H7的FMC总线应用之是32路高速IO扩展
  15. C++ accumulate函数介绍、具体案例
  16. R语言基础统计分析:正态性检验、方差齐性检验、T检验、方差分析、秩和检验
  17. 计算机显示丢失d3dcompiler,无法启动此程序提示缺少d3dcompiler文件怎么解决
  18. 数据库课程设计《教务信息管理系统》
  19. 基于docker jenkins nginx gitee实现前端自动化部署
  20. CC00022.CloudOpenStack——|OpenStack组件.V01|——|OpenStack-Dashboard|Dashboard基础条件配置|

热门文章

  1. windows 下oracle 数据库 rman 备份
  2. 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc
  3. java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...
  4. linux查看基础硬件信息
  5. .net关于app.config的使用 对于自己的类库
  6. 【OS学习笔记】九 实模式:从汇编的角度理解栈结构
  7. .NET Framework学习笔记(十)
  8. 2015年上半年 软件设计师 上午试卷 综合知识-2
  9. 在centOS7.2里安装virtualenv和flask
  10. murmurhash