您的位置:首页 > 其它

在VC使用GDI+的配置方法

2012-09-21 17:18 253 查看


在VC使用GDI+的配置方法(发表时间: 2007-5-10 23:20:00)

【评论】 【打印】 【字体:
本文链接:http://blog.pfan.cn/12567/25790.html 复制链接

分享到:0

唉,最近实在是感叹于自己的落伍. 这样一个令人兴奋的GDI+,却被我雪藏了很久,都不想用它.(可能是因为之前有GDI+漏洞的问题吧). 今天研究了一下才发现, 它恰恰为我提供了每天朝思幕想的一些功能, 如提供了一个Alpha透明度通道, 提供了字体和图形的反走样功能. 那还等什么呢? 赶快加入到GDI+的行列来吧. 哈哈. 不过, GDI+并不像原有的GDI那样,直接就可以使用.如果想要开发这样的程序,需要先按下面的配置一下.

如果你是Visual C++ 6.0的用户:

1. 下载GDI+的库. 运行GDI+需要一个GdiPlus.dll的文件; 开发GDI+的程序,还需要GdiPlus.lib和GdiPlus*.h文件.这些都可以在微软的网站上下到.(搜一下windows sdk,都出来了)

2. 将以上的文件放在你的工程中的一个目录,然后在stdafx.h中包含#include "GdiPlus.h" (这就取决于你放置那几个文件的地方了)

3. 在"工程"->"选项"里,添加一个链接库 GdiPlus.lib

如果你是Visual Studio 2003的用户:

不必去下载GDI+库了,因为VS2003已经自带了.

只要在stdafx.h文件中包括#include <gdiplus.h>,

并且要在#include <gdiplus.h>语句之前加:#define ULONG_PTR void* ,否则报错。

并在项目->选项->链接器->输入 中填上需要的lib库, gdiplus.lib即可

在程序的App类里,添加一个成员变量: ULONG_PTR m_gdiplusToken;

在App的InitInstance函数里, 在"INT_PTR nResponse = dlg.DoModal();"之前,添加下面的语句:

Gdiplus::GdiplusStartupInput gdiplusStartupInput;

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

在"INT_PTR nResponse = dlg.DoModal();"之后添加下面的语句:

Gdiplus::GdiplusShutdown(m_gdiplusToken);

就可以使用GDI+了.使用的时候,注意先要声明使用GDI+的名字空间:

using namespace Gdiplus;

void CGDIplus2Dlg::OnDrawLine() 
{
HDC          hdc;
//PAINTSTRUCT  ps;
Pen*         myPen;
Graphics*    myGraphics;
HWND hWnd=this->m_hWnd;
//hdc = ::BeginPaint(hWnd, &ps);
hdc = ::GetDC(hWnd);
   myPen = new Pen(Color(255, 255, 0, 0), 3);
   myGraphics = new Graphics(hdc);
   myGraphics->DrawLine(myPen, 20, 10, 400, 200);
   delete myGraphics;
   delete myPen;
//::EndPaint(hWnd, &ps);
::ReleaseDC(hWnd,hdc);	
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: