1. GDI+
이전 버전의 그래픽 디바이스인터페이스인 Windows GDI(그래픽 디바이스 인터페이스)의 후속버전입니다.
GDI 기능을 지원하지만 GDI+는 GDI의 많은 기능을 최적화하고 추가 기능을 제공합니다.
가장 대표적인 추가 기능의 예시로는 Antialias 기능이 있습니다.
Antialias
Antialias 특성을 사용하면 좀 더 품질이 향상된 그래픽을 출력할 수 있고,
그래픽 장치가 제공하는 향상된 그리기 기능을 수행할 수 있게 합니다.
2. GDI+ Win32에 적용하기
헤더
#include <Gdiplus.h>
#pragma comment(lib, "gdiplus")
using namespace Gdiplus;
#pragma once
#include <windows.h>
사용 코드 예시
#include "pch.h"
#include "Client.h"
HINSTANCE hInst; // 현재 인스턴스입니다.
WCHAR szTitle[MAX_LOADSTRING]; // 제목 표시줄 텍스트입니다.
WCHAR szWindowClass[MAX_LOADSTRING]; // 기본 창 클래스 이름입니다.
// 이 코드 모듈에 포함된 함수의 선언을 전달합니다:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 여기에 코드를 입력합니다.
ULONG_PTR gpToken;
GdiplusStartupInput gpsi;
if (GdiplusStartup(&gpToken, &gpsi, NULL) != Ok) return 0;
// 전역 문자열을 초기화합니다.
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadStringW(hInstance, IDC_CLIENT, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// 애플리케이션 초기화를 수행합니다:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_CLIENT));
MSG msg;
// 기본 메시지 루프입니다:
while (GetMessage(&msg, nullptr, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
GdiplusShutdown(gpToken);
return (int) msg.wParam;
}
//... 생략
3. 참조
https://blog.naver.com/tipsware/221123175566
Win32에서 GDI+ 사용하기
: Win32 프로그래밍 관련 전체 목차 http://blog.naver.com/tipsware/221059977193...
blog.naver.com
'Win32 API' 카테고리의 다른 글
17. Win32 API - Win32 클래스화(1 - 전체 코드) (0) | 2024.03.23 |
---|---|
16. Win32 API - Direct2D (0) | 2024.03.16 |
14. Win32 API - StockObject (0) | 2024.03.09 |
13. Win32 API - 윈도우 좌표 (0) | 2024.03.09 |
12. Win32 API - 무효화 / 유효화 영역 (0) | 2024.03.06 |