在MFC中使用GDI+的一般方法,以VC6.0編譯器為例


1.載解壓GDI+開發包;

2.正確設置include & lib 目錄;

設置如下:VC6.0編譯器菜單Tools->Options->Directories中添加inlude files和Library files對應的文件夾(前提是你下載了GDI+的開發包,放到對應的文件夾中)

3.在stdafx.h中添加:

#define ULONG_PTR ULONG
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;

(1)在應用程序項目的應用類中,添加一個成員變量,如下列代碼:

  ULONG_PTR m_gdiplusToken;

(2)在應用類中添加ExitInstance的重載,並添加下列代碼用來關閉GDI+: 

Gdiplus::GdiplusShutdown(m_gdiplusToken);

ULONG_PTR是一個DWORD數據類型,該成員變量用來保存GDI+被初始化后在應用程序中的GDI+標識,以便能在應用程序退出后,引用該標識來調用Gdiplus:: 

(3)在應用類的InitInstance函數中添加GDI+的初始化代碼:

注意:下面這些GDI+的初始化代碼必須放在m_pMainWnd->UpdateWindow();之前。

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

(4)在需要繪圖的窗口或視圖類中添加GDI+的繪制代碼。

1. 在單文檔應用程序中使用GDI+
以上過程,在單文檔,多文檔或是基於對話框的工程步驟都是一樣的。下面,我們就是以一個單文檔應用程序CBmpRotate作為示例的。下面列出第4步所涉及的代碼:

 

 基於對話框的工程GDIBase

 //要在dlg.DoModal();之前

 Gdiplus::GdiplusStartupInput gdiplusStartupInput;

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

可以看到lastResult Ok,可以用Gdiplus::Ok來判斷其狀態是否調用成功。

//如何在dlg.DoModal();之后添加如下代碼

 Gdiplus::GdiplusStartupInput gdiplusStartupInput;

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

 就會出現

出現GdiplusNotInitalized,說明初始化不正確。

當然運行后,什么也沒出現

參考鏈接:http://blog.csdn.net/www66net/article/details/45365545

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM