1.载解压GDI+开发包;

2.正确设置include & lib 目录;

设置如下:VC6.0编译器菜单Tools->Options->Directories中添加inlude files和Library files对应的文件夹(前提是你下载了GDI+的开发包,放到对应的文件夹中)

3.在stdafx.h中添加:

#define ULONG_PTR ULONG
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

(1)在应用程序项目的应用类中,添加一个成员变量,如下列代码:

  ULONG_PTR m_gdiplusToken;

(2)在应用类中添加ExitInstance的重载,并添加下列代码用来关闭GDI+: 

Gdiplus::GdiplusShutdown(m_gdiplusToken);

ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus::

(3)在应用类的InitInstance函数中添加GDI+的初始化代码:

注意:下面这些GDI+的初始化代码必须放在m_pMainWnd->UpdateWindow();之前。

 Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

(4)在需要绘图的窗口或视图类中添加GDI+的绘制代码。

1. 在单文档应用程序中使用GDI+
以上过程,在单文档,多文档或是基于对话框的工程步骤都是一样的。下面,我们就是以一个单文档应用程序CBmpRotate作为示例的。下面列出第4步所涉及的代码:

基于对话框的工程GDIBase

//要在dlg.DoModal();之前

Gdiplus::GdiplusStartupInput gdiplusStartupInput;

Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

可以看到lastResult Ok,可以用Gdiplus::Ok来判断其状态是否调用成功。

//如何在dlg.DoModal();之后添加如下代码

Gdiplus::GdiplusStartupInput gdiplusStartupInput;

Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

就会出现

出现GdiplusNotInitalized,说明初始化不正确。

当然运行后,什么也没出现

参考链接:http://blog.csdn.net/www66net/article/details/45365545

转载于:https://www.cnblogs.com/hpcpp/p/6170518.html

在MFC中使用GDI+的一般方法,以VC6.0编译器为例相关推荐

  1. 在MFC中如何自定义消息及相应事件(VC6.0及VS2005)

    在MFC中如何自定义消息及相应事件(VC6.0及VS2005) 2012-01-01 16:42:18|  分类: VS2005&VC++ |  标签:自定义消息  message   |字号 ...

  2. MFC中的GDI绘图

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

  3. MFC中的CString类使用方法指南

    MFC中的CString类使用方法指南 原文出处:codeproject:CString Management [禾路:这是一篇比较老的资料了,但是对于MFC的程序设计很有帮助.我们在MFC中使用字符 ...

  4. MFC中改变按钮颜色的方法

    本文参考学习 https://blog.csdn.net/zxccaoya/article/details/54142523 而来. 这里介绍mfc 中改变按钮颜色的最简单方法. 使用CMFCButt ...

  5. MFC中OnTimer函数的使用方法

    OnTimer()函数用于实现定时控制功能,定时控制功能主要由下面三个函数共同实现: SetTimer, KillTimer()和OnTimer(). 粗略的说,Settimer是设置一个计时器并开始 ...

  6. MFC中获取TimeStamp的简要方法

    1.获取精确到秒的TimeStamp(10位) SYSTEMTIME sysTime;::GetLocalTime(&sysTime); CTime curTime(sysTime);__in ...

  7. MFC中如何从EDIT控件中获取文字

    MFC中获取文本框的方法不同于C#,有点麻烦,主要有以下两种方法: 一.API法 用函数:GetdlgItemText获取文本,SetdlgItemText显示文本 [cpp] view plain ...

  8. VC++6.0中使用GDI+绘图(转载)

    VC++6.0中使用GDI+绘图 1.在VC++6.0中配置GDI+环境 1.1 下载GDI+库 VC++6.0中没有GDI+库.可以从http://www.crazy-bit.com/downloa ...

  9. (转)DirectShow9在VS2005或vc6.0下编译出现问题的解决方法

    1.我用的版本是DirectX9.0b ,没有安装,直接解压后放到一个文件夹里用 2.我按照以下的步骤操作成功.明天试着做个播放器. VFW(Video for Windows)是Microsoft推 ...

  10. vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法

    vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法 使用Everything查找afxres.h文件,如果没有everything的,可以到 ...

最新文章

  1. 2018中国计算机大会,阿里云分布式存储架构师:自研分布式文件系统服务
  2. 编译时类型 和运行时类型的 区别(1)
  3. [css] 如何取消页面中选中的文字?
  4. 【C++深度剖析教程18】逗号操作符的分析
  5. 嵌入式linux系统运行程序,嵌入式Linux系统启动过程
  6. BZOJ1176[Balkan2007] Mokia
  7. FANUC系统开发API(FOCAS2)pc应用开发,机加工领域
  8. Win7系统的开机个性化
  9. 从零开始一套完整的短视频运营方案,想做抖音快手短视频的速来观摩。
  10. opencv实现阈值分割算法和分水岭算法
  11. 药片计数器电路设计与实验
  12. python 将彩色图片 黑白图片变换
  13. AndroidQ 分屏窗口尺寸计算 (WMS部分)
  14. Caché 命令大全
  15. GETWA_NOT_ASSIGNED
  16. 用Wireshark抓包分析协议 计算机网络
  17. hadoop入门介绍(一)
  18. R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用bgcolor函数自定义指定可视化图像的背景色
  19. 3-6 静态数据成员与静态成员函数
  20. webmagic采集CSDN的Java_WebDevelop页面

热门文章

  1. Lync server 2013新建持久聊天室提示用户未启用SIP
  2. 自定义办法设置 localStorage 过期时间
  3. Description Resource Path Location Type The superclass javax.servlet.http.HttpServlet was not foun
  4. tomcat启动内存设置以及字符集设置
  5. struts2的struts.xml的详细配置1-1
  6. AsteriskNow 实用总结
  7. 带通滤波器作用和用途_常见低通、高通、带通三种滤波器的工作原理
  8. 获取手机唯一标识插件_非常强大的几款手机浏览器,适用于某些黑科技功能
  9. python蚁群算法可视化_蚁群算法原理及其实现(python)
  10. tvpvar模型的建模步骤_这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看...