GDI+ 使用指南(basic guiding of GDI plus )
其实这个也没有什么用,毕竟已经是过时的技术了。不过技术的更新跟实际的使用还是有差距了,免不了还是要用这种过时的技术,所以还是记录下来,方便以后查阅。
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 )相关推荐
- cimage和gdi绘图效率比较_GDI+和GDI绘图性能对比实验
龙源期刊网 http://www.qikan.com.cn GDI+ 和 GDI 绘图性能对比实验 作者:王克茹 来源:<科技创新与应用> 2013 年第 25 期 摘 要:本文通过完全相 ...
- GDI+入门(5、在GDI+中绘制带动画效果的图片)
五.在GDI+中绘制带动画效果的图片 private void Form2_Load(object sender, EventArgs e) { SetStyle(ControlStyles.Doub ...
- Win32 GDI 学习总结
Windows GDI 教程(一) 一个简单的绘图程序 http://www.tuicool.com/articles/jeMBZ3v 常见的图形编程库,除了 GDI 外还有 GDI+.OpenGL. ...
- Direct2D开发:Direct2D 和 GDI 互操作性概述
本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页).有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标, ...
- GDI+编程说明及小结
原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...
- GDI 泄漏检测方法
方法一 1.打开电脑的[任务管理器],选择[进程]页,点击菜单项的[查看]项,选择[选择列]: 2.勾选[GDI对象(J)]即可. 3.此时,用户就可以在进程中看到每个进程对应的GDI对象,每个进程的 ...
- Android核心分析之二十三Andoird GDI之基本原理及其总体框架
Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了.但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理. GDI主 ...
- MFC中的GDI绘图
MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...
- CImage 是基于GDI+的,很老的一篇文章,我很久很久以前看到过的
在许多资料上都说CImage类是基于GDI+的,但是为什么是基于GDI+的呢? 因为使用这个类时,并没有加入#include <gdiplus.h> ,也没有在程序开始和结束时分别写GDI ...
最新文章
- Java中的executeQuery,java连接数据库executeUpdate() 和executeQuery()
- Linux之不删除指定文件夹,其他都删(文件和文件夹)
- cassandra 集群并发测试脚本
- 如何将PHP对象数组转换成普通数组
- lucene 学习一
- redis-数据类型与应用
- C# 中的委托和事件[转]
- IBASE change related BDOC generation
- 常用 SQL Server 规范集锦
- android学习笔记42——图形图像处理2——绘图
- Shawn找到组织了!!!!!!!!
- 自动化测试 (二) 连连看外挂
- ac命令行隐藏ssid_胖AP性能,多SSID,SSID隐藏,评测小结
- stm32h7高速通信_【STM32H7教程】第48章 STM32H7的FMC总线应用之是32路高速IO扩展
- C++ accumulate函数介绍、具体案例
- R语言基础统计分析:正态性检验、方差齐性检验、T检验、方差分析、秩和检验
- 计算机显示丢失d3dcompiler,无法启动此程序提示缺少d3dcompiler文件怎么解决
- 数据库课程设计《教务信息管理系统》
- 基于docker jenkins nginx gitee实现前端自动化部署
- CC00022.CloudOpenStack——|OpenStack组件.V01|——|OpenStack-Dashboard|Dashboard基础条件配置|
热门文章
- windows 下oracle 数据库 rman 备份
- 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc
- java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...
- linux查看基础硬件信息
- .net关于app.config的使用 对于自己的类库
- 【OS学习笔记】九 实模式:从汇编的角度理解栈结构
- .NET Framework学习笔记(十)
- 2015年上半年 软件设计师 上午试卷 综合知识-2
- 在centOS7.2里安装virtualenv和flask
- murmurhash