Step1. stdafx.h 에 선언추가
#include
#pragma comment(lib, "gdiplus")
using namespace Gdiplus;
Step2. 초기화
[ProjectName]App.c 파일의 InitInstance() 함수에 초기화를 추가한다.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
그리고 아래 두 라인을 광역변수로 추가한다.
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
Step3. 정리
[ProjectName]App.c 파일의 ExitInstance() 함수(없으면 만든다)에 정리코드를 추가한다.
GdiplusShutdown(gdiplusToken);
Step4. 사용
Graphics graphics( pDC->m_hDC );
graphics.SetSmoothingMode( SmoothingModeAntiAlias );
Color c(50,200,255);
Pen p(c, 1.0);
Gdiplus::PointF p1, p2;
p1.X = 0.0;
p1.Y = 0.0;
p2.X = 100.0;
p2.Y = 10.0;
graphics.DrawLine (&p, p1, p2);
2. Pen : 연결된 선의 꺽임 처리
p.SetLineJoin (LineJoinRound);
enum LineJoin
{
LineJoinMiter = 0,
LineJoinBevel = 1,
LineJoinRound = 2,
LineJoinMiterClipped = 3
};
3. Pen : 선의 시작과 끝부분 처리
p.SetStartCap(LineCapRoundAnchor);
p.SetEndCap(LineCapArrowAnchor);
enum LineCap
{
LineCapFlat = 0,
LineCapSquare = 1,
LineCapTriangel = 3,
LineCapNoAnchor = 0x10,
LineCapSquareAnchor = 0x11,
LineCapRoundAnchor = 0x12,
LineCapDiamondAnchor = 0x13,
LineCapArrowAnchor = 0x14,
LineCapCustom = 0xff,
LineCapAnchorMask = 0xf0
}
4. 안티엘러어싱 적용
graphics.SetSmoothingMode(SmoothingModeHighQuality);
enum SmoothingMode
{
//XP이상 사용가능
SmoothingModeInvalid =QualityModeInvalid,
SmoothingModeDefault =QualityModeDefault,
SmoothingModeHighSpeed =QualityModeLow,
SmoothingModeHighQuality =QualityModeHigh,
SmoothingModeNone,
SmoothingModeAntiAlias,
#if(GDIPVER>=0x0110)
//비스타 이상 버전에서만 사용가능..
SmoothingModeAntiAlias8x4 =SmoothingModeAntiAlias,
SmoothingModeAntiAlias8x8
#endif//(GDIPVER>=0x0110)
};
5. 부드러운 선그리기
graphics.DrawCurve(&p, points, 6, 0.5f);
Struct DrawCurve(const Pen* pen, const Pointf* points, INT count, REAL tension);
arg1: Pen클래스 객체의 주소
arg2: Point배열 클래스의 주소
arg3: 두번째로 전달 받은 Point배열의 클래스 객체의 수..
arg4: 곡선을 그릴때 각이 생기지 않도록 끝을 강제로 늘려주는 장력을 명시 한다.
댓글 없음:
댓글 쓰기