VC加载初始化GDI+方法

来源:互联网 发布:mac 安装lnmp php7 编辑:程序博客网 时间:2024/06/06 08:26

1. MFC Dialog工程加载GDI+方法

 说明:VS 本身带有GDI+的所有库函数,所以不用像在VC++6.0里那样将GDI+的头文件和lib文件手工加入到工程中。

具体修改方法如下:

(1) stdafx.h 文件中添加代码:

#include <gdiplus.h>                //将GDI+头文件加入到工程中 #pragma comment(lib, "gdiplus.lib") //将GDI+的lib文件加入到工程中 using namespace Gdiplus;            //使用GDI+的命名空间 

(2) 假设工程名叫Menu,则在自动生成的Menu.h文件中添加成员变量:

protected://GdiplusStartupInput m_gdiplusStartupInput;ULONG_PTR m_gdiplusToken;public://重载ExitInstancevirtual int ExitInstance(); 

(3)在Menu.cpp的函数BOOL CMenuApp::InitInstance()中添加:

GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
(4)在Menu.cpp中添加重载函数ExitInstance()
int CMenuApp::ExitInstance(){// TODO: Add your specialized code here and/or call the base class GdiplusShutdown(m_gdiplusToken); //关闭GDI +return CWinApp::ExitInstance();}

2. WIN32工程加载GDI+

(1)加载GDI头文件和库文件

#include <gdiplus.h> #pragma comment(lib, "gdiplus.lib")using namespace Gdiplus;
// 另外取消在 stdafx.h 中的 WIN32_LEAN_AND_MEAN的定义(否则将有N个错,具体原因不是太清楚)

//#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料

(2)GDI初始化和关闭

// 在int _tWinMain中添加如下代码

  // Initialize GDI+. GdiplusStartupInput gdiplusStartupInput; ULONG_PTR           gdiplusToken; GdiplusStartup(&gdiplusToken, gdiplusStartupInput, NULL);//。。。。。。。。。// 程序结束时关掉GDI+GdiplusShutdown(gdiplusToken);

3. 单文档配置GDI方法

①新建一个单文档工程,为相关的 App 类添加两个成员变量: 
GdiplusStartupInput    m_Gdistart; 
ULONG_PTR    m_GdiplusToken; 
 
②在其类视图中,在相关的类 App 中的函数 InitInstance()添加: 
GdiplusStartup(&m_GdiplusToken,& m_Gdistart,NULL); 
 
③在相关的类 App 中的函数 ExitInstance()添加: 
GdiplusShutdown(m_GdiplusToken); 
 
④在“项目”->“属性”->“配置属性” ->“配置:所有配置”->“链接器” 
->“输入”->“附加依赖项”中添加: gdiplus.lib 
 
⑤在需要调用 GDI+中的函数的页面上方 或者 在头文件 stdafx.h 中添加: 
#include "gdiplus.h"

using namespace Gdiplus; 


至此便完成了 GDI+的配置.

 在单文档工程中利用 GDI+显示图像的方法,在相关的 View 类中的函数 OnDraw(CDC* pDC)中,添加:

    Image image(L"lena.jpg"); //载入指定路径的图像文件,jpg 或 bmp 格式的都可以 路径前面的 L 不能少       CRect rect;       GetClientRect(&rect); //获取客户区域的信息       Graphics graph(pDC->GetSafeHdc());//pDC 就是函数 OnDraw()中的参数       graph.DrawImage(&image,0,0,rect.Width(),rect.Height()); //在客户区域中绘制图像  



2 0
原创粉丝点击