【转】在VC6中使用 GdiPlus

在 VC6 中使用 GdiPlus(五) 下面用 VC6 来写一个 GdiPlus 的 Demo 工程 Step1:新建一个名为 Demo_GdiPlus 的 MFC AppWizard(exe) 工程操作步骤:(1)主菜单File->New...,选择 Projects 选项卡;(2)在工程类型列表中选中 MFC AppWizard(exe);(3)Project name 填入 Demo_GdiPlus,按 OK 进入下一 阅读详情
在 VC6 中使用 GdiPlus
2008-10-24 01:11

安装三部曲:
Step1
:下载 GdiPlus SDK 文件包;
链接地址1:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip
链接地址2:http://www.codersource.net/samples/mfcgdiplus.zip


Step2 :安装;
(1)头(GdiPlus*.h)文件安装目录:C:/Program Files/Microsoft Visual Studio/VC98/GdiPlus;
(2)静态库(GdiPlus.lib)文件安装目录:C:/Program Files/Microsoft Visual Studio/VC98/Lib;
(3)动态库(GdiPlus.dll)文件安装目录:Copy 到 exe 文件存放目录或者直接使用系统中自带的 GdiPlus.dll;


Step3 :配置开发环境下的路径
从 VC6 主菜单 Tools->Options... 进入设置窗口,选择 Directories 选项卡,在 Show directories for: 下拉列表中选择 Include files,在列表中增加 C:/Program Files/Microsoft Visual Studio/VC98/GdiPlus。

GdiPlus_Include

Step1:下载 GdiPlus SDK 文件包

    VC6 的安装程序并没有包含 GdiPlus 相关的库文件和头文件,所以想在VC6中使用 GdiPlus,你首先得把这些文件下载到本地。微软的说法是 GdiPlus 相关的库文件和头文件已经合入到 .Net Platform SDK 里面,所以开发人员只需要下载安装 SDK 即可。但也有相当一部分开发人员是不想为了 GdiPlus 就安装 SDK 的,于是就有热心之人从 SDK 中把 GdiPlus 相关的这些文件单独抽离了出来,形成了 GdiPlus SDK 文件包。

你可以尝试通过以下链接地址进行下载:
链接地址1:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip
链接地址2:http://www.codersource.net/samples/mfcgdiplus.zip

解压之后,请核对一下文件夹中的目录结构:
Root (Directory)
│
├Includes (Directory)
│ ├GdiPlus.h
│ ├GdiPlusBase.h
│ ├……
│ ├……
│ └GdiPlus*.h
├Lib (Directory)
│ └GdiPlus.lib
└GdiPlus.dll

Step2:安装


    理论上讲,把下载回来的这些文件放在硬盘上的任意一个位置都是可以的,只要在 Step3 中进行相应正确的配置,都能够在 VC6 中把 GdiPlus 用起来。

我采取的做法是:
(1)头(GdiPlus*.h)文件安装目录:C:/Program Files/Microsoft Visual Studio/VC98/GdiPlus;
    把 GDI+ SDK 文件包中的 Includes 目录重命名为 GdiPlus,再把 GdiPlus 文件夹 Copy 到 C:/Program Files/Microsoft Visual Studio/VC98 目录里面,换句话说就是把文件包中所有的 GdiPlus*.h 文件 Copy 到 C:/Program Files/Microsoft Visual Studio/VC98/GdiPlus 目录下。

(2)静态库(GdiPlus.lib)文件安装目录:C:/Program Files/Microsoft Visual Studio/VC98/Lib;
    把 GdiPlus.lib Copy 到 C:/Program Files/Microsoft Visual Studio/VC98/Lib 中。

(3)动态库(GdiPlus.dll)文件安装目录:Copy 到 exe 文件存放目录或者直接使用系统中自带的 GdiPlus.dll;
    事实上在安装 Windows 操作系统(2000以及以上版本)的时候,安装程序就已经把 GdiPlus.dll Copy 到了系统目录里面了。随着 Windows 补丁的不断更新,你也许还会在系统目录里面发现同时存在多个不同版本的 GdiPlus.dll(我尝试搜索了一下 C:/Windows 目录,发现两个不同版本的 GdiPlus.dll)。
    对于 GdiPlus.dll 不同版本的问题,微软建议软件开发厂商可以把自己开发测试时候所使用的 GdiPlus.dll 版本放到自己产品的安装目录下,随产品一起发布,这样程序在装载 GdiPlus.dll 的时候,会优先选择安装目录下的版本进行装载。
    这种做法的目的可以这样理解,假设现在 GdiPlus.dll 发现漏洞需要升级,但是用户操作系统由于没有及时打补丁或者其他原因,系统目录下的 GdiPlus.dll 未能及时更新(系统仍然在使用一个存在漏洞的 GdiPlus.dll)。此时用户安装了一个新软件,这个软件里面如果有打包 GdiPlus.dll 版本的话,那软件运行时候所使用的 GdiPlus.dll 版本与软件开发测试时候所使用的版本就是一致的,这样就可以把软件运行时候受漏洞影响的可能性降到最低。
    文件包中的 GdiPlus.dll 文件版本是 5.0.3049.0,微软最近更新的一个 GdiPlus.dll 版本是 5.1.3102.2180。我的 Windows XP 系统一直都有进行比较及时的自动更新,通过 Windows 的搜索功能可以在 C:/Windows 目录里面找到 GdiPlus.dll 的最新版本。另外我在腾讯 QQ 的安装目录下也发现了 GdiPlus.dll 的最新版本。

Step3:配置开发环境下的路径


为了让 VC6 在编译的时候,能够找到 GDI+ 相关的库文件和头文件,还需要在 VC6 开发环境中进行目录配置。
(1)从 VC6 主菜单 Tools->Options... 进入设置窗口,选择 Directories 选项卡;
(2)在 Show directories for: 下拉列表中选择 Include files,在列表中增加 GdiPlus 头文件所存放的目录路径,这个路径应该与 Step2 里面(1)的路径一致;
(3)在 Show directories for: 下拉列表中选择 Library files,在列表中增加 GdiPlus.lib 所存放的目录路径,这个路径应该与 Step2 里面(2)的存放路径一致;
(4)重启 VC6,以保存修改后的配置。

下面用 VC6 来写一个 GdiPlus 的 Demo 工程

Demo_GdiPlus 运行效果图

Step1:新建一个名为 Demo_GdiPlus 的 MFC AppWizard(exe) 工程

操作步骤:
(1)主菜单File->New...,选择 Projects 选项卡;
(2)在工程类型列表中选中 MFC AppWizard(exe);
(3)Project name 填入 Demo_GdiPlus,按 OK 进入下一页;
(4)选择单文档(Single document)类型的程序框架,按 Finish 完成工程创建工作。


Step2:添加头文件声明

在 StdAfx.h 中添加以下代码:

// {{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
typedef unsigned long ULONG_PTR, * PULONG_PTR;
#include
< gdiplus.h >
using namespace Gdiplus;
#pragma comment (lib, "GdiPlus.lib")

Step3:在 CDemo_GdiPlusApp 中增加成员变量 m_gdiplusToken,并在构造函数中进行初始化

class CDemo_GdiPlusApp : public CWinApp
{
private :
ULONG_PTR m_gdiplusToken;
// …… ……
};

CDemo_GdiPlusApp::CDemo_GdiPlusApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
m_gdiplusToken = NULL;
}

Step4:添加安装和卸载 GdiPlus 的代码
通过 ClassWizard 在 CDemo_GdiPlusApp 中增加成员函数

// .h 中的声明
virtual BOOL InitInstance();
virtual int ExitInstance();

// .cpp 中的实现
BOOL CDemo_GdiPlusApp::InitInstance()
{
// 加载 GdiPlus
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(
& m_gdiplusToken, & gdiplusStartupInput, NULL);
// …… ……
}


int CDemo_GdiPlusApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
// 卸载 GdiPlus
if (m_gdiplusToken)
   Gdiplus::GdiplusShutdown(m_gdiplusToken);  
return CWinApp::ExitInstance();
}

Step5:找到 CDemo_GdiPlusView::OnDraw() 函数,在里面添加一段 GdiPlus 的绘图代码

void CDemo_GdiPlusView::OnDraw(CDC * pDC)
{
CDemo_GdiPlusDoc
* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

Graphics graphics(pDC
-> GetSafeHdc());

// Pen can also be constructed using a brush or another pen.   There is a second parameter - a width which defaults to 1.0f
Pen blue (Color( 255 , 0 , 0 , 255 ));
Pen red   (Color(
255 , 255 , 0 , 0 ));

int y = 256 ;
for ( int x = 0 ; x < 256 ; x += 5 )
{
   graphics.DrawLine(
& blue, 0 , y, x, 0 );
   graphics.DrawLine(
& red, 256 , x, y, 256 );  
   y
-= 5 ;
}  
}


编译运行,Demo 程序完成。留住这个 Demo 程序,今后我们会利用它进行更加深入的 GdiPlus 学习.

VC6.0 GDIPlus图形编程实战教程 GDIPlus是Windows操作系统中用于进行2D矢量图形渲染、位图处理以及文本显示的图形界面库,提供了一个比旧的GDI(图形设备接口)更丰富、更易用的图形和布局功能集合。GDIPlus改善了GDI的一些限制,例如支持更多的颜色格式,抗锯齿文本和图形,以及更易于使用的编程接口。 阅读详情

相关推荐

Gdi+ GDIPlus 使用样例及说明 vc6.0

包含GDI库 及VC6.0下使用说明,非常好的东西哦

Visual C++6.0 GDI+配置

试了好几种办法,总是无法正常使用 参考《Visual C++范例大全》此书上面的代码 总算可以一用,后面再试试其他的配制方法吧 此书实例配置方法如下: 1.StdAfx.h //GDI+ #define UNICODE #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include "gdiplus\\Includ

522

VC6+SP6+Gdiplus+Directx9绿色安装版

VC6+SP6+Gdiplus+Directx9绿色安装版,绿色实用的VC6.0开发工具,只是需要一点点分。。。

在 VC6 中使用 GdiPlus

I .在 VC6 中使用 GdiPlus 安装三部曲: Step1:下载 GdiPlus SDK 文件包; 链接地址1:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip 链接地址2:http://www.codersource.net/samples/mfcgdiplus.zip Step2:安装; (1)头(GdiPlus*.h

629

GdiPlus.h、GdiPlusPath.h、GdiPlusBrush.h、GdiPlus.lib、GdiPlusTypes.h文件下载.rar

GdiPlus.lib、GdiPlus.h、GdiPlusPath.h、GdiPlusBrush.h、GdiPlusMem.h、GdiPlusTypes.h等文件下载,VC GDI类库中的主要文件,运用GDI时有时候会很着急找不到这些文件, 在此可解你燃眉之急。

Android中的Service:Binder,Messenger,AIDL(2)

前言前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议没有看过前一篇博文的同学先去看一下前一篇: Android中的Service:默默的奉献者 (1) 。但是在前一篇博文中也有一些遗漏的东西——主要是关于bindService()这一块的具体细节。由于这

lypeer的专栏 5万+

最简单的GDI+程序代码

最简单的GDI+程序代码 其中使用了路径渐变和先行渐变

zhangxiaonanwin的专栏 641

雷达杂波的基础知识

例如工作在海上的机载雷达,航行在海上的船用雷达,它们都不想要海杂波,会影响它们对小目标的检测,从而以为“漏掉”海面飞行的巡航导弹而被击毁。海杂波的反射系数是非常复杂的,影响的因素很多,除了和雷达参数有关,显然还和海况息息相关,经验模型经常将反射系数表示成海况的函数,在不同条件和不同模型的情况下,反射系数的值不同。说到“杂波”,你可能想到的就是如何去抑制它,去减少它在雷达回波中的分量,在很多情况是这样的。云雨的反射对飞机雷达来说是不希望的,但确是气象雷达所利用的,可以用来测量降雨率,提升天气预报的准确性。

qq_43416206的博客 2131

转VC6.0中gdiPlus的使用以及一个bmp转jpg的小例子[bobob原创]

VC6.0中gdiPlus的使用以及一个小例子     1.GDIPlus需要下载并安装sdk开发包       2.在tool,option,direction,include   files下设置头文件路径.../MICROSOFT   SDK/INCLUDE,在tool,option,direction,libaray     files下设置lib路径.../MICROSOFT   SDK

train_z的专栏 3289

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2950

如何使用superpowers

"这个 bug 帮我修一下" → 我会自动走 systematic-debugging → TDD → verify 流程。- "帮我添加一个登录功能" → 我会自动走 brainstorming → plan → TDD → verify 流程。只要任务有 1% 的可能性适用某个技能,我就会先调用它再行动。→ TDD(测试驱动开发)→ verification(验证)→ code review(代码审查)提出需求 → brainstorming(头脑风暴)→ writing-plans(编写计划)

xiaojingjianqiang的博客 610

VC6.0中gdiPlus的使用以及一个bmp转jpg的小例子

VC6.0中gdiPlus的使用以及一个bmp转jpg的小例子   http://mingarlic.blog.163.com/blog/static/31148911200710261318324/ #include   using   namespace   Gdiplus; GdiplusStartupInput   m_gdiplusStartupIn

chla的专栏 575

深度理解嵌入(embedding)层

首先从one_hot开始: one_hot的优点:计算方便快捷、表达能力强。 one_hot的缺点:过于稀疏,过于占用资源,尤其是在数据量特别大时;数据之间完全独立。

weixin_44441131的博客 5658

(转) VC6.0中GdiPlus的使用以及一个小例子 - jiket - 网易博客

(转) VC6.0中GdiPlus的使用以及一个小例子1.GDIPlus需要下载sdk开发包 2.在tool,option,direction,include files下设置头文件路径.../MICROSOFT SDK/INCLUDE,在tool,option,direction,libaray files下设置lib路径.../MICROSOFT SDK/SDK8/LIB,在proje

815

告别版本冲突!在Ubuntu 20.04上优雅实现ROS Noetic与ROS2 Foxy双环境切换

本文详细介绍了在Ubuntu 20.04系统上实现ROS Noetic(ROS1)与ROS2 Foxy双环境共存与切换的完整方案。通过智能脚本设计和工作空间隔离,解决了版本冲突问题,帮助开发者高效管理不同ROS版本项目。特别适合需要同时开发ROS1和ROS2应用的机器人开发者。

weixin_28452161的博客 406

Linux系统之部署经典魔塔小游戏

Linux系统之部署经典魔塔小游戏

jks212454的博客 1808

在 VC6 中使用 GdiPlus-安装

安装三部曲:Step1:下载 GdiPlus SDK 文件包;链接地址1:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip链接地址2:http://www.codersource.net/samples/mfcgdiplus.zipStep2:安装;(1)头(GdiPlus*.h)文件安装

Gary's Blog --- A C++ programmer 4653

PMP--工件

合同是指对双方都有约束力的协议,强制卖方提供规定的产品、服务或结果,以及强制买方支付相应的费用。它还可能包括处于中间状态的特性,例如已设计但尚未构建的特性、质量保证中的特性或测试中的特性。RACI 矩阵是一种常见的方法,用于显示执行、担责、咨询或知情,且与项目活动、决策和可交付物有关的干系人。计划是提议的实现某种目标的方式。在项目开始前或开始时创建的文件,涉及与项目有关的战略、商业或高层级的信息。或 © 它们是用特定方法创建的结果,例如,虽然成本估算结果是一个重要工件,它们是用不同估算方法得出的结果。

stqer的博客 1665

在VC6中使用 GdiPlus

<br />在 VC6 中使用 GdiPlus2008-10-24 01:11<br />安装三部曲:<br />Step1 :下载 GdiPlus SDK 文件包;<br />链接地址1:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip <br />链接地址2:http://www.codersource.net/samples/mfcgdiplus.zip<br /><br />Step2 :安装;<br />(1)头(GdiPlus*.h)文件安装

1065

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

在 VC6 中使用 GdiPlus-使用

下面用 VC6 来写一个 GdiPlus 的 Demo 工程   Step1:新建一个名为 Demo_GdiPlus 的 MFC AppWizard(exe) 工程 操作步骤: (1)主菜单File->New...,选择 Projects 选项卡; (2)在工程类型列表中选中 MFC AppWizard(exe); (3)Project name 填入 Demo_G

blogdown的专栏 624

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在 VC6 中使用 GdiPlus(三)

Step2:安装    理论上讲,把下载回来的这些文件放在硬盘上的任意一个位置都是可以的,只要在 Step3 中进行相应正确的配置,都能够在 VC6 中把 GdiPlus 用起来。我采取的做法是:(1)头(GdiPlus*.h)文件安装目录:C:/Program Files/Microsoft Visual Studio/VC98/GdiPlus;    把 GDI+ SDK 文件包中的

duxiuxing的专栏 4744

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

在 VC6 中使用 GdiPlus(二)

Step1:下载 GdiPlus SDK 文件包    VC6 的安装程序并没有包含 GdiPlus 相关的库文件和头文件,所以想在VC6中使用 GdiPlus,你首先得把这些文件下载到本地。微软的说法是 GdiPlus 相关的库文件和头文件已经合入到 .Net Platform SDK 里面,所以开发人员只需要下载安装 SDK 即可。但也有相当一部分开发人员是不想为了 GdiPlus 就安装

duxiuxing的专栏 2761

VC6.0中gdiPlus的使用以及一个小例子

1.GDIPlus需要下载sdk开发包2.在tool,option,direction,include files下设置头文件路径.../MICROSOFT SDK/INCLUDE,在tool,option,direction,libaray  files下设置lib路径.../MICROSOFT SDK/SDK8/LIB,在project, setting, link, object/mod

bobob的专栏 8437

关于VC6 MFC使用Gdiplus实现自绘按钮的总结

步骤1:简易教程(更换对话框的背景)及Gdiplus下载地址可查看这个博客https://blog.youkuaiyun.com/misads/article/details/78619735。 步骤2:使用Gdiplus实现自绘按钮可参考这个博客https://blog.youkuaiyun.com/wyansai/article/details/50971959。 首先感谢上面两位博主的分享,那么我写这个博客是干...

不定期更新的博客 899
上一篇: 【转】float和double类型的内存分布和比较方法收藏
下一篇: 【转】理解SetWindowOrg,SetViewportOrg,SetWindowExt,SetViewportExt
code09
博客等级 码龄18年 31粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值