본문 바로가기

Win32 API

(18)
18. Win32 API - Win32 클래스화(2 - 설명) 목차 1. 실행 흐름 도식화 2. WinMain 3. COM 객체 초기화 4. Window Procedure 정의 5. Window 클래스 등록 6. Direct2D Factory, WIC 객체 생성 7. Window 생성 8. 참조 1. 실행 흐름 도식화 실행 흐름에 대한 이해를 돕는 도식화 입니다. 2. WinMain // Win32_Study.cpp : 애플리케이션에 대한 진입점을 정의합니다. // #include "pch.h" #include "framework.h" #include "Win32_Study.h" #include "CustomWinApp.h" int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR pszCm..
17. Win32 API - Win32 클래스화(1 - 전체 코드) 목차 1. PCH 2. CustomWinApp.h 3. CustomWinApp.cpp 4. 사용 예시 5. 참고 이미지 출력 예제에 대한 클래스화 진행 내용입니다. 1. PCH #framework.h #pragma once #include "targetver.h" #define WIN32_LEAN_AND_MEAN // 거의 사용되지 않는 내용을 Windows 헤더에서 제외합니다. // Windows 헤더 파일 #include // C 런타임 헤더 파일입니다. #include #include #include #include #include #include #include #include #pragma comment(lib, "D2D1.lib") using namespace D2D1; #define SetF..
16. Win32 API - Direct2D 목차 1. Direct2D 2. Direct2D 사용 3. Direct2D 그리기 예제 4. 참조 1. Direct2D GDI를 사용하는 것보다 좀 더 좋은 품질의 그림을 그리고 싶다면 Direct2D를 사용하면 됩니다. Direct2D는 GDI와 달리 AntiAlias 기능을 사용하기 떄문에 GDI로 그린 그림보다 더 좋은 결과를 보여줍니다. Direct2D는 GDI+보다 최신의 API를 통해 구현되어 있고 현재도 버전이 업데이트 되고 있습니다. (DX11, DX12등) Direct2D는 윈도우의 RDP(원격 데스크톱 프로토콜) 인프라를 사용하여 원격으로도 표시할 수 있습니다. 개발자가 렌더링을 디스플레이 컴퓨터의 GPU에 의해 처리되는지, 로컬 렌더링 이후 비트맵으로 전송되는지 여부를 선택할 수 있습..
15. Win32 API - GDI+ 목차 1. GDI+ 2. GDI+ Win32에 적용하기 3. 참조 1. GDI+ 이전 버전의 그래픽 디바이스인터페이스인 Windows GDI(그래픽 디바이스 인터페이스)의 후속버전입니다. GDI 기능을 지원하지만 GDI+는 GDI의 많은 기능을 최적화하고 추가 기능을 제공합니다. 가장 대표적인 추가 기능의 예시로는 Antialias 기능이 있습니다. Antialias Antialias 특성을 사용하면 좀 더 품질이 향상된 그래픽을 출력할 수 있고, 그래픽 장치가 제공하는 향상된 그리기 기능을 수행할 수 있게 합니다. 2. GDI+ Win32에 적용하기 헤더 #include #pragma comment(lib, "gdiplus") using namespace Gdiplus; #pragma once #inc..
14. Win32 API - StockObject 목차 1. GetStockObject 2. 사용 시 주의사항 3. 사용 예시 4. 참조 StockObject 자원 중에서 내용이나 속성이 바뀌지 않으면서 주로 사용되는 자원들이 많은데 응용프로그램의 요청시마다 운영체제가 자원을 구성해서 전달하는것은 비효율 적입니다. 운영체제에서 사용빈도가 높고 내용이 바뀌지 않는 자원들을 미리 만들어서 가지고 있는데 이를 Stock Object라고 정의합니다. 1. GetStockObject https://learn.microsoft.com/ko-kr/windows/win32/api/wingdi/nf-wingdi-getstockobject GetStockObject 함수(wingdi.h) - Win32 apps GetStockObject 함수는 스톡 펜, 브러시, 글꼴 ..
13. Win32 API - 윈도우 좌표 목차 1. Window 영역 좌표 2. GetWindowRect - Window 영역 좌표값을 얻는 함수 3. GetClientRect - 클라이언트 영역의 좌표를 얻는 함수 4. 자식 윈도우의 클라이언트 영역 좌표 얻기 5. 참조 윈도우에서의 좌표 Windows 운영체제에서 Window는 다른 Window를 소유할 수 있기 때문에 절대적인좌표와 상대적인 좌표 개념을 동시에 가지게 됩니다. 1. Window 영역 좌표 윈도우 좌표는 모니터 화면을 기준으로 하는 절대 좌표계입니다. 해당 좌표계에서는 모니터 화면의 좌측 상단이 (0, 0)이 됩니다. 윈도우 영역은 캡션과 테두리를 포함하기 떄문에 좌표 계산 시에 주의해야 합니다. 2. GetWindowRect - Window 영역 좌표값을 얻는 함수 http..
12. Win32 API - 무효화 / 유효화 영역 목차 1. 윈도우 클라이언트 영역 2. 무효화 영역 3. 유효화 영역 4. WM_PAINT 5. 참조 1. 윈도우 클라이언트 영역 윈도우의 테두리 영역 또는 제목이 표시되는 캡션 영역은 기본적으로 운영체제가 관리하는 영역입니다. 2. 무효화 영역 무효화 영역은 화면에 그려져야 할 내용이 변경되었음을 시스템에 알리는 영역입니다. 이 영역은 대부분의 경우 직사각형 영역으로 표현되며, 윈도우나 컨트롤 내부의 일부분이나 전체가 무효화될 수 있습니다. InvalidateRect() 함수를 호출하여 무효화 영역을 설정합니다. 이 함수들을 호출하면 해당 영역은 유효하지 않은(invalid) 상태가 되어, 윈도우의 내용이 화면에 그려질 때 다시 그려져야 함을 나타냅니다. 3. 유효화 영역 유효화 영역은 화면에 다시 그..
11. Win32 API - Bitmap 목차 1. 비트맵 패턴 종류 2. BitMap 구조체 3. 비트 패턴의 크기 계산 4. GetBitmapBits 5. SetBitmapBits 6. 참조 비트맵이란? Win32 API(Bitmap)은 Windows 운영 체제에서 그래픽 처리를 위한 함수 및 구조체를 제공하는 API(응용 프로그램 프로그래밍 인터페이스)입니다. 비트맵(Bitmap)은 이미지 데이터를 저장하고 표시하는 데 사용되는 특별한 형식의 그림입니다. Win32 API에서는 비트맵을 다루기 위한 다양한 함수와 구조체가 제공됩니다. 비트맵을 사용하는 이유는 복잡한 그림을 프로그램 실행 중에 그리기보다는 비트맵에 저장해두고 사용하는 형식으로 활용합니다. 1. 비트맵 패턴 종류 DDB(Device Dependent Bitmap) 장치 의존적..
10. Win32 API - DC 개요 목차 1. DC의 주요 기능 2. DC 종류 3. DC의 사용 방법 4. DC 관련 주요 함수 5. 참고 WIn32 API DC(Device Context) 개요 DC(Device Context)는 Win32 API에서 출력 장치와 상호 작용하는데 사용하는 중요한 개체입니다. GDI(Graphics Device Interface)에서 사용하는 데이터 구조이며, 윈도우, 프린터, 메모리 등 다양한 출력 장치에 대한 정보를 담고 있습니다. 1. DC의 주요 기능 그래픽 출력 : 선, 곡선, 사각형, 텍스트 등 다양한 그래픽 요소를 출력할 수 있습니다. 폰트 관리 : 폰트를 선택하고, 크기, 스타일 등을 설정할 수 있습니다. 색상 관리 : 색상을 선택하고, 팔레트를 설정할 수 있습니다. 비트맵 관리 : 비트맵..
9. Win32 API - GDI 개요 목차 1. GDI의 주요 기능 2. GDI Object 3. GDI의 장점 4. GDI의 단점 5. GDI의 대체품 Win32 API GDI 개요 GDI(Graphics Device Interface)는 Win32 API에서 제공하는 그래픽 라이브러리입니다. Windows 운영체제에서 텍스트, 선, 도형, 이미지 등을 출력하는 기능을 제공하며 프린터와 같은 출력 장치를 제어하는 기능도 제공합니다. 1. GDI의 주요 기능 그래픽 출력: 텍스트, 선, 도형, 이미지 등을 다양한 출력 장치에 출력하는 기능을 제공합니다. 폰트 관리: 다양한 폰트를 설치, 관리, 사용할 수 있도록 하는 기능을 제공합니다. 메타파일: 그래픽 정보를 저장하고 재사용할 수 있도록 하는 기능을 제공합니다. 디바이스 독립성: 애플리케이..