1. 程式人生 > >GDI+學習---1.初識GDI+

GDI+學習---1.初識GDI+

ont put 檢查 記錄 instance 類型 font 允許 .lib

---恢復內容開始---

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.清理

  在程序析構函數中添加

  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);

GDI+學習---1.初識GDI+