본문 바로가기

공부/윈도우api

[윈도우 api]윈도우 api 기본구조

반응형

 윈도우 api 기본 구조

 

인스턴스 핸들 = 코드 영역의 메모리주소

윈도우(os)는 리소스(메뉴, 브러시, 윈도우 창 등)를 관리하기 위해서 커널 오브젝트를 생성, 커널 오브젝트안에는 리소스에 대한 정보가 들어 있고 이 커널 오브젝트에 특정한 핸들(주소 값)을 부여함, 그리고 실행되는 프로그램에 윈도우(os)가 이 부여된 핸들을 전달

받은 핸들(주소 값)을 통해서 커널 오브젝트에 접근이 가능하고 여러가지 기능을 수행 할 수 있음

 

 

콜백함수(윈도우 프로시저)와 윈도우 및 윈도우에 대한 메세지와의 관계

 

무슨 변화가 생기면 이 변화에 대한 메세지가 어느 윈도우로 보낼 것인지 잘 생각해봐야 함

 

윈도우 프로시저는 윈도우 클래스당 하나씩 배정되며 메시지에 대응하는 방식을 정의함으로써 윈도우의 행동 양식을 결정

한 클래스로부터 여러 개의 윈도우가 만들어 질 수 있음

WNDCLASS구조체의 lpfnWndProc 멤버에 윈도우 프로시저함수의 포인터가 대입

 

특정 윈도우 클래스로부터 생성된 모든 윈도우의 메세지는 그에 해당하는 윈도우 프로시저함수가 처리

특정 윈도우 클래스로부터 생성된 모든 윈도우 안의 child 컨트롤(윈도우)로부터의 메세지 또한 그에 해당하는 윈도우 프로시저함수가 처리

 

WinMain에서 생성된 윈도우에서 무슨 변화가 발생하면 자기 자신인 WinMain에서 생성된 윈도우에게 WinMain에서 생성된 윈도우의 변화에 대한 메세지를 전달

WinMain에서 생성된 윈도우의 child 윈도우인 에디트 컨트롤에서 어떠한 변화가 발생하면 WinMain에서 생성된 윈도우에게 에디트 컨트롤의 변화에 대한 메세지를 전달

 

쓰레드(프로그램의 흐름)가 인스턴스의 내용을 실행

인스턴스의 내용 안에는 메세지큐에서 메세지를 꺼내고 그 꺼낸 메세지를 콜백함수WndProc의 인자로 전달함

 

프레젠테이션1.pptx

반응형