随笔 - 551, 文章 - 0, 评论 - 921, 引用 - 0
数据加载中……

如何在vc的开发中使用GDI+?

这篇文章介绍VC6下如何使用GDI+开发。
1. 下载GDI+开发包,微软的网站可以下载到。大家找不到的话,可以在http://alantop.5166.info下载。或者找我索取均可。
2. 在VC中的include files 和 library files设置,并保证程序工作目录下有gdiplus.dll
3. 在stdafx.h中包含文件的最下面键入如下代码

#ifndef ULONG_PTR
#define ULONG_PTR unsigned long *
#endif

#include "gdiplus.h"

using namespace Gdiplus;

4. 在视图类中声明成员变量
 GdiplusStartupInput gdiplusStartupInput;
 ULONG_PTR gdiplusToken;

5. 在构造函数中:
     GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
析构函数中:
     GdiplusShutdown(gdiplusToken);
6. OnDraw函数键入如下代码

注意下面的注释掉的代码是CDC和HDC如何获得,和他们互相如何转换的。
这里重要的是要提醒:
用GetDC()获得的CDC* dc一定要用ReleaseDC(dc)释放掉。

//     HDC   hdc;   
//     CDC   *dc=GetDC();   
//     hdc=dc->GetSafeHdc();




       
       Image image(L
"c:\\china.jpg");
       
printf("The width of the image is %u.\n", image.GetWidth());
       
printf("The height of the image is %u.\n", image.GetHeight()); 



        Graphics graphics(pDC
->GetSafeHdc());
        Pen      pen(Color(
255, 0, 0, 255));
        
        graphics
.DrawLine(&pen, 0, 0, 200, 100);



       graphics
.DrawImage(&image, 0, 0);

               graphics
.DrawLine(&pen, 0, 0, 200, 100);



//        ReleaseDC(dc);


除非DC属于一个窗口类,ReleaseDC必须在画图后被调用。在任何时候只有5个一般的DC有效,如果没有释放,将阻止其他的应用程序访问DC.


在VC2005下使用GDIPLUS不用再去下载gdiplus库,系统已经内置了。

posted on 2008-03-15 12:11 AlanTop 阅读(2604) 评论(5)  编辑 收藏 引用

评论

# re: 如何在你的开发中使用GDI+?  回复  更多评论   

哇,太好了,就找这个。
2008-03-15 17:22 | FEIM Studios

# re: 如何在你的开发中使用GDI+?  回复  更多评论   

开始还以为是GDI++
2008-03-16 15:48 | 暗金装备

# re: 如何在vc的开发中使用GDI+?  回复  更多评论   

相当不错!支持楼主
2008-06-13 15:41 | 疯子

# dklcarjh  回复  更多评论   

[URL=http://mphdulsq.com]xxlvnvze[/URL] yvqkjfna http://vcmyilyn.com pimskpag qkoamsjx <a href="http://ljamxxox.com">tplgowlp</a>
2009-09-03 10:15 | dklcarjh

# re: 如何在vc的开发中使用GDI+?  回复  更多评论   

终于找到了~~
2011-05-09 20:14 | bikefur

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理