반응형

프로그래밍 기술/Windows API 8

2.2 그리기 예 [Windows API]

2.2 그리기 예이번에는 간단한 그리기 예제를 통해 Windows API를 이용하여 어떤 절차를 거치는지 살펴고기로 합시다. [그림 2] 그리기 작업 수행 흐름 앞에서 소개했듯이 Windows API의 그리기 기본 흐름은 [그림 2]와 같습니다. Windows API를 처음 학습할 때 새로운 형식 명과 긴 함수 이름과 생소한 흐름과 절차들 때문에 어떻게 이해하면서 다음으로 넘어가야 하는지 걱정하는 것이 대부분입니다. 지금에 와서 Windows API를 학습하는 이유는 윈도우즈 프로그램이 어떠한 원리로 동작하는지 이해하기 위한 부분이 실제 프로그래밍에 사용하기 위한 것보다 많다고 볼 수 있습니다. 이미 MFC나 Windosw Form, WPF 등의 보다 강력하고 개발 비용이 적게 드는 기술들이 많기 때문에..

2.1 WM_PAINT 메시지 [Windows API]

2.1 WM_PAINT 메시지윈도우에 다른 윈도우에 의해 가려졌다가 보여지거나 최소화 후에 최대화를 하는 등의 작업을 수행하면 다시 그려주어야 하는 영역이 생깁니다. 윈도우즈 운영체제에서는 다른 창에 의해 가려지는 영역을 클리핑 영역으로 기억해 두었다가 해당 영역이 다시 보여지면 그 부분을 포함하는 최소한의 사각 영역을 무효화 영역이 발생한 것으로 처리합니다. 이 때 발생하는 윈도우 메시지가 WM_PAINT입니다.그런데 윈도우즈 프로그램에서 무효화 영역이 생긴다고 바로 WM_PAINT 메시지를 발생하여 처리하는 것은 아닙니다. 일반적으로 윈도우즈 프로그램에서 그리기 작업은 다른 작업들보다 처리 우선순위가 낮습니다. 따라서 응용 메시지 큐에 처리할 윈도우 메시지가 없고 무효화 영역이 있을 때 WM_PAIN..

2. 기본 그리기 [Windows API]

2. 기본 그리기Windows API에서 그리기는 DC(Device Context)를 이용합니다. DC란 출력에 필요한 여러 정보를 가지고 있는 구조체로 라인이나 경계를 그릴 때 사용하는 펜, 면을 채울 때 사용하는 브러쉬 등의 정보를 갖고 있습니다. DC를 사용하지 않고 그리기를 한다고 가정하면 선을 그리기 위해 두 점의 좌표 뿐만 아니라 선의 형태, 선의 두께, 선의 색상 정보들을 인자로 전달해야 합니다. 사각형을 그리기 위해서는 좌표 뿐만 아니라 경계 선의 형태, 선의 두께, 선의 색상 정보, 면을 채울 색상, 패턴 등의 인자가 필요하겠죠. 이처럼 그리기를 위해 전달해야 하는 인자를 단순화하기 위해 Windows API에서는 DC를 사용하고 있습니다. Windows API에서는 그리기 위해 DC를 ..

1.4 윈도우 클래스 등록 및 윈도우 개체 생성 [Windows API]

1.4 윈도우 클래스 등록 및 윈도우 개체 생성이번에는 윈도우 클래스를 등록하여 윈도우 개체를 생성하는 형태의 윈도우즈 응용 프로그램을 만들어 보기로 합시다. 이번 프로그램을 통해 윈도우즈 프로그램의 기본적인 동작 흐름을 파악할 수 있습니다. 윈도우즈 프로그램에서 자신의 원하는 형태로 창을 만들기 위해서는 윈도우 클래스를 등록한 후에 등록한 윈도우 클래스 형태의 인스턴스를 생성하는 것이 필요합니다. 윈도우즈 API에서는 비슷한 동작을 하는 버튼이나 리스트 박스 등을 만들 때 미리 등록해 놓은 윈도우 클래스를 이용하여 만들게 하고 있습니다. 다음은 이번에 작성할 윈도우즈 프로그램의 기본 흐름입니다. [그림 5] 윈도우즈 프로그램 기본 동작 흐름 제일 먼저 윈도우 클래스 속성을 설정합니다. 윈도우 클래스 속..

1.3 첫 번째 윈도우즈 프로그램 만들기 [Windows API]

1.3 첫 번째 윈도우즈 프로그램 만들기이제 첫 번째 윈도우즈 프로그램을 작성해 봅시다. 개발 도구에서 [Windows 응용 프로그램]을 선택하시고 마법사의 응용 프로그램 설정에서 빈 프로젝트를 체크하여 프로젝트를 생성하세요. 여기에서는 프로그램을 시작하면 메시지 창이 뜨고 확인을 누르면 메시지 창이 닫히면서 응용 프로그램이 끝나는 아주 작은 프로그램입니다. 이 프로그램을 통해 윈도우즈 프로그램의 진입점과 함수 호출 규약 및 포함해야 할 파일 등을 간략하게 살펴볼 거예요. 다음처럼 코드를 작성하세요.//첫 번째 프로그램 - 메시지 창 띄우기#include //윈도우즈 API의 제공 형식과 기능을 사용하기 위해 포함 INT APIENTRY WinMain(HINSTANCE hIns, HINSTANCE hPr..

1.2 자료 형식 [Windows API]

1.2 자료 형식Win32 API에서는 다양한 시스템 형식을 제공하고 있습니다. 여러분이 C언어나 C++언어와 Win32 API를 이용한다면 프로그래밍 언어에서 제공하는 형식과 Win32 API에서 제공하는 형식을 모두 사용할 수 있습니다. 그리고 이들 형식 사이에는 공통적인 부분이 있어 상호 호환성을 제공하는 형식들이 있습니다. C언어나 C++언어로 Win32 API를 사용할 때 포함해야 할 여러가지 헤더파일이 있는데 개발 편의를 위해 기본적인 Win32 API를 이용할 때 windows.h 파일만 포함해서 사용할 수 있게 여러 헤더 파일을 windows.h 파일에 포함하고 있습니다. 그리고 windows.h 파일에 포함하는 헤더 파일 중에 대부분의 형식은 windef.h 파일에 정의하고 있습니다. 다..

1.1 Windows 커널의 핵심 모듈 [Windows API]

1.1 Windows 커널의 핵심 모듈윈도우즈 운영체제는 여러 개의 모듈로 구성하여 모듈 간의 상호 작용에 의해 동작하는 마이크로 커널입니다. Unix와 Linux는 단일 커널로 운영체제의 기능을 추가하거나 변경 등을 하려면 새로운 커널로 교체해야 합니다. 하지만 윈도우즈 운영체제는 해당 모듈을 추가하거나 삭제, 변경할 수 있습니다.윈도우즈 운영체제를 구성하는 여러 모듈에서 가장 핵심적인 모듈은 User, GDI, Kernel입니다. User 모듈에서 제공하는 대표적인 것은 윈도우 개체이며 발급한 핸들은 시스템 전역에서 사용 가능합니다. GDI 모듈에서는 펜이나 브러쉬 등과 같이 그리기에 관한 개체들을 발급하는데 이들은 해당 응용 내에서만 사용 가능합니다. Kernel 모듈에서는 파일이나 프로세스, 쓰레..

1. Windows API 소개

1. Windows API 소개Windows API는 Microsoft 사의 Windows 운영체제에서 제공하는 자료 형식과 기능을 포함하는 시스템 라이브러리입니다.Windows는 윈도우즈 운영체제를 의미하며 API는 Applicataion Program Interface의 약어로 응용 프로그램 인터페이스를 뜻합니다. 인터페이스가 특정 기능을 제공함을 약속하는 것이므로 API는 응용 프로그램을 작성할 때 사용하는 기능입니다. 따라서 Windows API는 응용 프로그램을 개발할 때 사용할 수 있게 Windows 운영체제에서 제공하는 라이브러리입니다.운영체제에서 제공하는 라이브러리에는 기능과 함께 다양한 형식들을 제공하고 있습니다. 특히 운영체제에서 제공하는 기능을 시스템 호출이라고 부릅니다. 일반적으로 ..

반응형