mfc中的GDI配置

一:GDI+配置

#include <gdiplus.h> // 包含头文件
#pragma comment(lib,"Gdiplus.lib") // 链接库,当然也可以在工程配置中引入



二:GDI+初始化和关闭

初始化:在程序启动的函数中 一般在App类的InitInstance函数

Gdiplus::GdiplusStartup( &gdiplusToken , &gdiplusStartupInput , NULL ) ; // GDI+初始化

关闭:在程序关闭的函数中 一般在App类的ExitInstance函数

Gdiplus::GdiplusShutdown( gdiplusToken ) ; //关闭GDI+



注意:对于ActiveX控件的项目工程,由于GDI初始化问题,在DLL或者ACTIVEX工程中不能放在App类中,放在其他位置比如窗口类或者其他UI显示的地方。

如果放在App类中,就会导致vs2010编译一直等待,regsvr32.exe注册控件的时候执行不下去,感觉vs2010编译‘死’在那里了,但事实上这个控件文件ocx已经生成完毕,如果使用该控件,就会导致使用者(比如Excel)无法退出进程(没有界面,但从进程管理器能够看到进程)。这个问题导致我花费了一天时间,翻开以前写的MFC程序代码,对比也没有发现也什么不一样的地方,最后通过代码一行一行加入,才定位到‘Gdiplus::GdiplusShutdown( gdiplusToken ) ;’函数的位置导致的。


如何在VS2010中的MFC中配置GDI+

首先,VS2010中已经有GDI+SDK包的,不需要额外下载
1:在stdafx.h文件中加入下面3行代码,添加相应的头文件和库
#pragma comment( lib, "gdiplus.lib" )
#include "gdiplus.h"
using namespace Gdiplus;



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



3:使用GDI+函数前,先,最好放在OnInitDialog()中
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);



4:使用完GDI+函数后,需要卸载GDI+
Gdiplus::GdiplusShutdown(m_gdiplusToken);
这就是基本的配置了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值