GDI+(GDIPlus)的功能:
(1) 二維矢量圖形的繪製.
比如直線,矩形,圓,橢圓,點等等.它和GDI的不同之處在於它能在點定在浮點數之處.GDI中繪製直線:drawline(int a,int b); 而GDI+有很多重載函數.參數類型接受的範圍廣了.
(2) 象素繪製功能
很方便實現圖像的縮放,剪裁,翻轉,複製,格式的轉換等功能.
(3) 文字編排
強大的字體類(Font)可以輕鬆設置各種字體.
GDI+包括40多個類,50多個枚舉,6個結構體,及一些獨立函數.
Graphic類, Pen類Brush類, Image類,Bitmap類, Font類, Rect類,Point類, Size類, Color類, BitmapData類 ,等等.還有一些獨立函數,比如: GdiplusStartup , GdiplusShutdown, 它們的功能是用於GDI+環境的初始化和GDI+資源的釋放.
Visual C++ 6 . 0 環境中配製GDI+方法:
(1) 下載GDI+SDK, 從http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip或者從微軟網站下載.
(2) 解壓GDIPlus.zip,將其中的Includes文件夾和Lib文件夾下的文件分別放入VC98目錄下的Includes文件夾和Lib文件夾中.
(3) 在項目屬性中添加GDI+靜態煉接庫. 打開工程選擇[project]菜單à[Settings],在下拉列表框中選擇Win32Debug,右側link標籤頁下的Object/librarymodules輸入gdiplus.lib ,單擊ok.
(4) 添加必要代碼.
1. 打開資源管理器,打開”stafx.h”文件,在其中添加如下代碼:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long *
#include “Gdiplus.h”
using namespace Gdiplus;
#endif
2. 打開視圖類,選擇應用程序類CXXXApp(XXX爲項目名稱),爲其添加兩個成員變量. 第一個:GdiplusStartupInput類型的 m_GdiplusStartupInput 第二個: ULONG_PTR 類型的 m_GdiplusToken
3. 在CXXXApp類中的InitInstance函數中添加如下代碼:
// 圖像庫初始化
GdiplusStartup(&m_GdiplusToken ,&m_GdiplusStartupInput , NULL);
4. 重寫CXXXApp類的 ExitInitInstance函數
int CXXXApp::ExitInitInstance()
{
// 關閉GDI+圖象庫
GdiplusShutdown(m_GdiplusToken);
return CWinApp::ExitInstance();
}
Visual C++ 2005、2008、2010、2012環境中配製GDI+方法:
如果沒有GDI+的開發包先去下載,不過自VS2005後的版本都已經包含了GDI+開發包,應該不用下載。(因爲Visual C++2005中已經含有GDI+開發包,因此不用下載GDI+SDK.)
(1)在項目屬性中添加靜態鏈接庫。打開項目,選擇[project]菜單à[xxx屬性](xxx是項目名稱),打開項目屬性對話框,展開左側的配置屬性,選擇連接器下的輸入,然後在右側的附加依賴項中添加“ gdiplus.lib ” ,單擊 確定。
(2)打開資源管理器,打開”stafx.h”文件,在其中添加如下代碼:
#include <gdiplus.h>
using namespace Gdiplus ;
(3)打開視圖類,選擇應用程序類CXXXApp(XXX爲項目名稱),爲其添加兩個成員變量. 第一個:GdiplusStartupInput類型的 m_GdiplusStartupInput 第二個: ULONG_PTR 類型的 m_GdiplusToken
(4)在CXXXApp類中的InitInstance函數中添加如下代碼:
// 圖像庫初始化
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput , NULL);
(5)重寫CXXXApp類的ExitInitInstance函數
int CXXXApp::ExitInitInstance()
{
// 關閉GDI+圖象庫
GdiplusShutdown(m_GdiplusToken);
return CWinApp::ExitInstance();
}