本文章将详细介绍如何使用GDI+库进行图形和图像处理。通过一系列示例代码帮助读者掌握GDI+的基础知识及其实用技巧,适用于希望增强Windows应用程序视觉效果的开发者。
使用Visual C++6.0集成GDI+的步骤如下:
1. 解压并安装GDI+开发包;
2. 设置正确的include及lib目录;
3. 在stdfax.h文件中添加:
```cpp
#ifndef ULONG_PTR#define ULONG_PTR unsigned long*#endif#include
```
4. 程序中引入GDI+的头文件`gdiplus.h`和库文件`gdiplus.lib`. 通常,这些会在项目中的stdfax.h文件里加入。另外一种添加方式是通过属性设置:在VC.net中选择“项目菜单->属性->链接器->输入”,然后增加相应的库。
举例说明:
(1) 在应用类中定义一个成员变量:
```cpp
ULONG_PTR m_gdiplusToken;
```
该变量用于保存GDI+初始化后的标识,以便后续使用`Gdiplus:: GdiplusShutdown(m_gdiplusToken)`来关闭GDI+。
(2) 重载应用程序的ExitInstance函数,并添加以下代码以确保在程序退出时调用:
```cpp
int CGDITestApp::ExitInstance(){Gdiplus::GdiplusShutdown(m_gdiplusToken);return CWinApp::ExitInstance();}
```
(3) 在应用类InitInstance方法中初始化GDI+,注意此操作需放在`m_pMainWnd->UpdateWindow();`之前:
```cpp
CWinApp::InitInstance();
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
```
(4) 在需要绘图的窗口或视图类中添加使用GDI+绘制代码。以下是在单文档应用中的示例:
```cpp
void CGDITestView::OnDraw(CDC* pDC){
CGDITestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
using namespace Gdiplus;
Graphics graphics(pDC->m_hDC);
Pen newPen(Color(255,0,0),3); HatchBrush newBrush(HatchStyleCross,Color(255,0,255,0),Color(255,0,0,255));
graphics.DrawRectangle(&newPen, 50 , 50 ,100 ,60 );
graphics.FillRectangle(&newBrush , 50 , 50 ,100 ,60 );
}
```
编译并运行,将生成所需的图形输出。