---恢復內容開始---
GDI+:
GDI+由一組C++類實現,是對於GDI的繼承,GDI+不僅優化了大部分GDI性能而且提供了更多特性。允許應用程序開發者將信息顯示在顯示器或者打印機上,而無需考慮該顯示設備的詳細情況,GDI+與GDI一樣,都具有設備無關性,使得應用程序和圖形硬件隔離開來。
GDI+的三個組成部分:
1.二維矢量圖形
矢量圖形由圖元(比如線條、曲線和圖形)組成。用戶可以在圖元文件中記錄矢量圖像(圖形命令的序列)。GDI+提供了Metafile類,可用於記錄、顯示和保存圖元文件。MetafileHeader和MetaHeader類允許您檢查圖元文件頭中存儲的數據。
2.圖像
某些圖片很難或者根本無法用矢量圖形來顯示,。這種類型的圖像可存儲為位圖,即代表屏幕上單個點顏色的數字數組。
GDI+提供了Image、Bitmap和Metafile類,可用於顯示、操作和保存位圖,支持BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON、WMF、EMF共9種常見的圖像格式。。它們支持眾多的圖像文件格式,還可以進行多種圖像處理的操作。
3.文字
使用各種字體、字號和樣式來顯示文本。
在MFC中使用GDI+
1.引入頭文件
#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
2.全局變量設置
在APP類中,添加成員變量ULONG_PTR m_ptrToken;此變量用於GDI+的控制
3.初始化GDI+對象
在App類初始化函數InitInstance()中添加:
GdiplusStartupInput gsi;
GdiplusStartup(&m_ptrToken,&gsi,NULL);
4.關閉
在ExitInstance函數中添加
GdiplusShutdown(m_ptrToken);
在OnDraw函數使用GDI+來繪圖:
Graphics graphics(this->GetDC()->m_hDC);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawLine(&pen, 0, 0, 100, 100);