참고> blog.naver.com/tipsware/221123175566
1. GDI는 1990년대 초반(나랑 나이가 비슷..)에 만들어진 개념이어서 계속 발전하는 그래픽 장치의 특성을 반영하지 못함.
-> 이를 개선하기 위해 1990년대 후반에 GDI에 새로운 출력 기능이 추가된 GDI+가 등장함. (예를 들면 'AntiAlias' 기능 등)
-> GDI+를 사용하면 출력 품질을 향상시킬 수 있고 BMP가 아닌 PNG나 JPEG와 같은 이미지도 쉽게 사용 가능함.
2. GDI+ : GDI를 수정하지 않고(즉, GDI로 만들어진 기존 프로그램과의 호환성을 유지하면서) 향상된 그래픽 장치의 특성을 사용할 수 있는 추가적인 라이브러리를 제공하는 기술
3. GDI+도 GDI와 마찬가지로 Win32 API 또는 Win64 API를 통해서 작업하지만 그래픽 장치의 드라이버와 연동해서 그래픽 장치가 제공하는 좀 더 향상된 그리기 기능을 수행함.
4. GDI+를 사용하려면 GDI+용 헤더 파일과 라이브러리 파일을 소스에 포함해야 함.
ex) #include <Gdiplus.h>
#pragma comment(lib, "gdiplus")
5. GDI+는 C++ 언어의 클래스 개념과 네임스페이스 개념을 사용하고 있기 때문에 using 문도 사용 가능
ex) using namespace Gdiplus;
6. 컴파일 속도 향상을 위해 stdafx.h 파일을 사용하는 경우에는 stdafx.h 파일에서 WIN32_LEAN_AND_MEAN define 문을 주석 처리해야 함.
-> 참고로 WIN32_LEAN_AND_MEAN 은 MFC 관련 API를 사용할지 말지 여부를 나타내는 플래그이다.
-> #define WIN32_LEAN_AND_MEAN 이면 MFC 관련 API를 사용하지 않겠다는 뜻이고,
//#define WIN32_LEAN_AND_MEAN 이면 MFC 관련 API를 사용하겠다는 뜻이다.
-> 일반적으로 윈도우 응용 프로그램을 만들 때에는 MFC(Microsoft Foundation Class)를 사용하거나 SDK(Software Development Kit)를 사용하는 두 가지 방법이 있다.
7. GDI+ 를 사용할 경우 GDI+ 라이브러리 초기화 작업을 WinMain 함수 내에서 해주어야 함.
8. GDI+를 사용하기 위해서는 Graphics 객체를 생성해야 함
-> GDI로 그림을 그릴 때 DC를 사용한 것과 유사함.
9. GDI+는 기본적으로 'AntiAlias' 특성이 적용되어서 그림이 그려짐.
10. GDI+를 사용해서 만든 응용 프로그램의 경우 원격 접속을 하여 해당 프로그램을 사용할 때 일부 기능이 GDI와 동일하게 출력되기 떄문에 주의해야 함
-> 예를 들어, 'AntiAlias' 특성의 경우 원격 접속을 사용하면 적용되지 않음.
11. GDI+는 GDI 보다는 품질이 좋지만 그래픽 장치의 가속 효과나 다양한 기능을 사용하기는 어려움. 그래서 그래픽 장치의 하드웨어적인 특성을 최대한 사용할 수 있도록 Direct2D라는 출력 방법이 추가됨.
-> Direct2D는 Windows Vista 이상에서 사용 가능
'Study Memos > Windows Programming' 카테고리의 다른 글
Direct2D로 그림 파일을 읽어 출력하기 (Section 44) (0) | 2020.10.12 |
---|---|
Direct2D (Section 43) (0) | 2020.10.12 |
Timer (Section 41) (0) | 2020.10.12 |
SetDCPenBrush 함수 (Section 39) (0) | 2020.10.12 |
SetDCBrushColor 함수 (Section 38) (0) | 2020.10.12 |