2008/03/10
Turbo C++ Explorer 에서 GDIPlus 사용하기
Turbo C++ Explorer 에서 GDIPlus 사용하기
TC++ 에서 GDIPlus 를 사용하려면 우선 GDIPlus.dll 에서 C++ Builder 용으로 library 파일을 만들어야 한다.
그 방법은 도스 명령창에서 다음 명령을 수행하면 C++ Builder 용 library 파일이 생성된다.
implib -c -f gdiplus.lib gdiplus.dll
다음으로 프로젝트에 library 파일을 링크시켜준다.(소스 위치 어느 곳이든 상관 없이 다음을 입력 한다.)
그리고 GDIPlus사용에 필요한 헤더 파일을 include 시킨다.
마지막 준비로 #define STRICT 를 선언해 준다. vcl.h 이전에 포함시켜주면 되는데 더 편하게 프로젝트 옵션에 Conditional defines 에 입력하면 된다.
이제 준비를 다 마쳤고 GDIPlus를 사용하면된다.
우선 헤더파일에 다음 변수를 선언한다.
그리고 나서 Form 을 생성시에 아래와 같이 초기화를 해주고
마지막으로 폼 종료전에 GDIPlus 를 shutdown 시켜준다.
이제 OnPaint 부분에 맘껏 사용하면 된다.
아래 소스는 GDIPlus 를 좀더 편하게 쓰고자 작성한 아주 간단한 Wrapper 클래스 이다.
현재는 GDIPlus 시작과 종료만을 구현 했으나 추후 기능을 더 보강해 사용할 수 있다.
Original Post : http://neodreamer-dev.tistory.com/82
TC++ 에서 GDIPlus 를 사용하려면 우선 GDIPlus.dll 에서 C++ Builder 용으로 library 파일을 만들어야 한다.
그 방법은 도스 명령창에서 다음 명령을 수행하면 C++ Builder 용 library 파일이 생성된다.
implib -c -f gdiplus.lib gdiplus.dll
다음으로 프로젝트에 library 파일을 링크시켜준다.(소스 위치 어느 곳이든 상관 없이 다음을 입력 한다.)
#pragma comment(lib, "gidplus.lib")
그리고 GDIPlus사용에 필요한 헤더 파일을 include 시킨다.
#include <windows.h>
#include <algorithm>
#include <gdiplus.h>
마지막 준비로 #define STRICT 를 선언해 준다. vcl.h 이전에 포함시켜주면 되는데 더 편하게 프로젝트 옵션에 Conditional defines 에 입력하면 된다.
이제 준비를 다 마쳤고 GDIPlus를 사용하면된다.
우선 헤더파일에 다음 변수를 선언한다.
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
그리고 나서 Form 을 생성시에 아래와 같이 초기화를 해주고
// Initialize GDI+.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
마지막으로 폼 종료전에 GDIPlus 를 shutdown 시켜준다.
//Shutdown GDI+
Gdiplus::GdiplusShutdown(gdiplusToken);
이제 OnPaint 부분에 맘껏 사용하면 된다.
Gdiplus::Graphics g(Canvas->Handle);
Gdiplus::Pen pen(Gdiplus::Color(255, 0, 0), 2);
g.DrawLine( &pen, 10.5f, 10.3f, 120.3f, 192.2f);
아래 소스는 GDIPlus 를 좀더 편하게 쓰고자 작성한 아주 간단한 Wrapper 클래스 이다.
현재는 GDIPlus 시작과 종료만을 구현 했으나 추후 기능을 더 보강해 사용할 수 있다.
// Header file
#ifndef uGdiplusH
#define uGdiplusH
//-----------------------------------------------------------------
#pragma comment(lib, "gdiplus.lib")
#define STRICT
#include <windows.h>
#include <algorithm>
#include <gdiplus.h>
class TGDIPlus
{
public:
__fastcall TGDIPlus();
virtual __fastcall ~TGDIPlus();
private:
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
};
#endif
// Source file
//-----------------------------------------------------------------
#pragma hdrstop
#include "uGdiplus.h"
//-----------------------------------------------------------------
#pragma package(smart_init)
__fastcall TGDIPlus::TGDIPlus()
{
// Initialize GDI+.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
}
__fastcall TGDIPlus::~TGDIPlus()
{
//Shutdown GDI+
Gdiplus::GdiplusShutdown(gdiplusToken);
}
// Using Example
// 선언
#include "uGdiplus.h"
TGDIPlus* m_pGdiplus;
// 생성
m_pGdiplus = new TGDIPlus();
// 해제
delete m_pGdiplus;
Original Post : http://neodreamer-dev.tistory.com/82
Labels:
C++ Builder
,
GDI+
,
GDIPlus
,
TistoryOldPost
,
Turbo C++
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment