본문 바로가기

Win32 API

15. Win32 API - GDI+

 

 

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