목표 Win32 API 환경에서 비트맵을 출력해보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. 비트맵(Bitmap) 2. 비트맵 출력하기 정리 개요 앞선 포스팅에서 그래픽을 그리기 위한 스톡 오브젝트를 배웠습니다. 스톡 오브젝트의 대표적인 예로 펜, 브러시 등이 있었는데요. 간단한 선, 도형을 그리는 것은 어렵지 않지만, 높은 퀄리티의 도형을 기대하기는 쉽지 않습니다. 따라서, 우리는 미리 그려져 있는 그래픽을 불러오는 방법을 생각해봐야 합니다. 이번 포스팅은 미리 작성되어 있는 비트맵을 출력하는 것에 대해서 배워보도록 하겠습니다. 1. 비트맵(Bitmap) 비트맵은 아이콘, 그림, 사진 등과 같이 디지털 이미지를 어떠한 형식을 가지고 저장된 리소스를 뜻합니다. 어떠한 형식, 즉 특정 포..
목표 Win32 API에서 제공하는 그리기 모드와 RopMode에 대해서 알아보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. Win32 API의 그리기 모드 2. RopMode를 활용해 선 그리기 정리 개요 이전 포스팅에서 GDI 오브젝트 중 하나인 펜과 브러쉬를 활용해 도형을 그리는 실습을 진행했습니다. 이번 포스팅에서는 그리기 모드와 RopMode에 대해서 다뤄보도록 하겠습니다. Win32 API를 활용해서 만든 프로그램의 모션은 조금 어색합니다. 최근 컴퓨터의 처리 능력이 높아져서 덜하지만, 버벅이거나 끊기는 듯한 느낌은 어쩔수 없이 들게 됩니다. 이러한 부분을 보완하기 위해서 RopMode를 활용할 수 있습니다. 특히, RopMode를 활용하여 애니메이션 효과를 줄 수도 있습니다...
목표 펜과 브러쉬를 활용해 화면에 도형을 출력해보고, Old의 의미에 대해서 알아보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. 펜(Pen) 2. 브러쉬(Brush) 3. Old의 의미 정리 개요 저번 포스팅에서 GDI, DC 등 그래픽 출력을 위한 기본적인 이론과 스톡 오브젝트에 대해 다루었습니다. [Windows API] Win32 API의 그래픽, GDI와 스톡 오브젝트(Stock Object) 이번 포스팅에선 펜과 브러쉬를 활용해 화면에 도형을 출력하는 실습을 진행할 것입니다. 기본적으로 GDI 오브젝트를 만들어 사용하는 원리는 다음과 같습니다. 펜을 사용하는 것을 예시로 들어보겠습니다. HPEN MyPen, OldPen; // 1.핸들을 선언한다. MyPen = CreatePen..
목표 Win32 API를 활용해 윈도우에 도형, 비트맵 등을 출력하고 ROP2 모드를 설정하기 위한 GDI, DC의 개념과 스톡 오브젝트(Stock Object)의 개념에 대해서 알아보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. GDI, GDI 오브젝트, DC의 개념 2. 스톡 오브젝트 활용과 색상 정리 개요 GDI(Graphic Devcie Interface)와 DC(Device Context)는 이전 포스팅에서 꾸준히 다뤄온 친구들입니다. 다시 한 번 복습하고 구체적인 내용을 알아보도록 하겠습니다. [Windows API] Device Context란?, Win32 API를 활용해 문자열 출력하기 1. GDI, GDI 오브젝트, DC의 개념 GDI는 화면, 프린터와 같은 모든 출력 ..
목표 Win32 API를 활용해 작업 영역의 크기를 알아보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 1. 작업 영역(Client Area) 2. GetClientRect 함수를 통해 작업 영역 얻기 정리 개요 기존 프로젝트를 실행하고 윈도우의 크기를 변경하면 사이즈는 바뀌지만, 내용은 그대로 있는 것을 알 수 있습니다. 사이즈를 줄이면 내용이 안보이는 상황입니다. 대부분의 웹사이트를 접속하면 브라우저의 크기를 변경하면 크기에 맞게 내용이 이동하는 것을 보신 적이 있을 것입니다. 이는 크기가 바뀌어도 사용자가 내용을 확인할 수 있도록 반응형 웹사이트로 만든 것입니다. Win32 API로 만든 윈도우도 이와 같은 기능을 구현할 수 있습니다. 1. 작업 영역(Client Area) 우선 작업 영..
목표 Windows API를 활용해 백그라운드 작업을 하고, 콜백 함수에 대해서 이해하고 실습하도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 백그라운드 작업 콜백 함수(Callback Function) 정리 개요 이전 포스팅에서 타이머에 대한 내용을 다뤘습니다. 타이머를 활용해서 백그라운드 작업을 할 수 있습니다. 또한, 타이머는 윈도우 프로시저 내에서 WM_TIMER 메세지를 처리하는 방식으로 활용했습니다. 작은 프로그램에선 상관이 없지만, 프로그램의 크기가 커진다면 윈도우 프로시저 내에서 모든 것을 처리한다면 복잡성이 올라가고 가독성도 떨어질 것입니다. 이번 포스팅에서는 타이머를 활용해 백그라운드 작업을 하는 것과 콜백 함수를 통해서 타이머를 처리하는 것에 대해서 알아보도록 하겠습니다. 백..
목표 이전 포스팅에서 진행한 MyTimer 프로젝트의 문제점을 찾고 이를 해결해 개선된 프로그램을 작성합니다. 추가로, 특정 상황에서만 잠깐 사용하는 일회용 타이머를 작성해보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 이전 프로그램의 문제점과 해결 방안 일회용 타이머 만들기 정리 개요 이전 포스팅에서 윈도우에 현재 시간을 출력하는 프로그램을 제작했습니다. 시간은 정상적으로 출력되나, 실행하면 바로 뜨지 않고 1초 후에 뜨고, 화면이 깜빡거리는 문제점이 있었습니다. 이 문제를 해결하면서 일정 시간이 되면 알람이 울리는 프로그램을 작성해보도록 하겠습니다. 추가로, 일정 시간 동안안만 메세지를 띄우는 것도 한 번 해보도록 하겠습니다. 이전 프로그램의 문제점과 해결 방안 이전 포스팅에서 진행한 현재..
목표 타이머에 대해 이해하고, 타이머를 활용해 다양한 작업을 하는 방법에 대해서 배워보도록 하겠습니다. 목차 클릭하면 해당 목차로 이동합니다. 타이머 설치와 제거 타이머를 활용해 시계 만들기 정리 개요 이전 포스팅에서 Win32 API를 활용해 입, 출력을 하는 것에 대해 배웠습니다. 텍스트, 도형 등을 출력하고, 마우스 클릭을 통해 그림을 그리는 프로그램을 작성했습니다. 코드는 순차적으로 진행되기 때문에, 이러한 동작들은 개발자가 의도한 순서에 의해 동작하는 코드들이었습니다. 이번 포스팅에서는 타이머를 통해 일정 시간마다 메세지 혹은 함수를 호출해 동작하는 것에 대해서 배워보도록 하겠습니다. 타이머 설치와 제거 Win32 API의 장점 중 하나는 백그라운드 작업을 지원한다는 것입니다. 백그라운드 작업을..