컴퓨터/Win32-API
윈도 응용 프로그래밍은 메시지 루프에 진입하여 운영체제의 명령어를 하나씩 처리하는 방식으로 프로그래밍됩니다.
본문에서는 가장 대표적이며, 어떻게 보면 필수적인 WM_PAINT 메시지에 대하여 알아보도록 하겠습니다.
윈도 운영체제는 GUI 기반으로 이루어져 있고, 동시에 여러 개의 프로그램이 실행될 수 있습니다.
간단하게 사용자가 2개의 프로그램 A와 B를 사용 중이라고 가정해 봅시다.
두 프로그램은 많은 운영체제 안에서 다양한 환경으로 존재할 수 있습니다.
윈도에서 프로그램을 사용한 경험이 있다면 위의 내용을 알고 있을 것이라 생각합니다. 그렇다면 상황을 부여해 보도록 합시다. 이때 모니터는 하나만 있다고 가정합시다.
위와 같은 상태에서 윈도 운영체제는 프로그램들을 구동하는데 자원을 최소하 하기 위해
A 프로그램은 그림을 그려 출력하고, B 프로그램은 그리지 않고 있습니다.
아래와 같은 경우도 동일합니다.
B 프로그램을 화면에 그려 출력하고 A는 B에서 가린 부분만큼은 그릴 필요가 없습니다.
이런 식으로 운영체체에서 하나의 응용프로그램에서 그래픽을 그려 출력해야 될 필요가 있을 때 WM_PAINT 메시지를 보내어 주게 됩니다.
이제 WM_PAINT 메시지를 운영체제에서 어떤 상황에 보내주는지를 알았습니다. 이제 실제 응용 프로그밍을 하는 과정에서 해당 응용프로그램에 WM_PAINT 메시지 안에서 어떻게 처리를 할 것이냐를 작성하면 됩니다.
가능합니다. 사실 버튼을 누르거나, 키보드 동작을 하거나, 다양한 메세지에 의해서도 당연하게 그래픽이 변경이 되어야만 원하는 동작을 하기가 쉬울 것입니다. 하지만 몇 가지 문제점이 발생할 수도 있게 됩니다. 앞으로 실습 코드들을 통해서 문제점을 파악하고 해결해 보도록 합시다.
Win32_API - 문자열 출력해보기(TextOutW / TextOutA) (0) | 2022.02.15 |
---|---|
Win32_API - 문자 자료형 (유니코드와 아스키코드) (0) | 2022.02.13 |
Win32_API - 그래픽 개요 (0) | 2022.02.07 |
Win32_API - 빈 프로젝트에서 WinMain으로 실행하기(with VisualStudio) (0) | 2022.02.04 |
Win32_API - HINSTANCE / HWND / HDC (0) | 2022.01.29 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet