CAFE

[6.0]강좌게시판

[6.0]윈도우 API 라는게 대체 뭐야? # 05편 - 창과 창에 관련된 API (1)

작성자whitebono|작성시간08.07.11|조회수1,105 목록 댓글 10

 

 [6.0] 윈도우 API 라는게 대체 뭐야? # 05편 - 창과 창에 관련된 API (1)

 

 이번 강의는 창에 대해 집중적으로 파고드는 계기를 마련해줄 것입니다.

 

 물론 그러니만큼 내용이 상당히 많습니다. 창에 관련된 API는 무수하며,

 

 아마 제대로 다 다루려면 책 한권은 써야할 것입니다.

 

 우선 간단히 실무에서 많이 쓰는 API를 중심으로 설명해드리겠습니다.

 (HWND : 창의 핸들을 줄여서 왼쪽과 같이 쓰겠습니다.)

 

 GetDesktopWindow () :   바탕 화면에 대한 창 핸들을 얻어오는 함수입니다.

   (반환값: 바탕 화면에 대한 HWND)

 

 FindWindow (클래스 이름, 창 이름) :   특정 클래스 네임이나 창 이름이 일치하는 조건의 첫 창을 찾습니다.

   (반환값: 찾은 창의 HWND / 0이면 못찾은 것이다.)

  -> 클래스 이름이나 창 이름이 vbNullString일 경우 그 조건은 무시됩니다.

 

 FindWindowEx (부모창, 검색기준창 HWND, 클래스 이름, 창 이름) :   FindWindow에서 조금 발전한 형태로,

 부모창와 검색기준창 HWND가 각각 0일 때 FindWindow와 같은 동작을 수행합니다.

 부모창은 어떤 창의 자식창을 찾을 때 사용하며, (FindWindow로는 찾을 수 없습니다.) 검색기준창은,

 조건을 만족하는 창에서 그 기준이 되는 창, 다음으로 조건을 만족하는 창을 찾는데에 사용됩니다.

   (반환값: 찾은 창의 HWND / 0이면 못찾은 것이다.)

 

 FlashWindow :  작업 표시줄의 창에 대한 단추를 깜빡이는데에 사용합니다.

   (반환값 : 함수가 성공적으로 수행되었으면 0이 아닌 값, 아니면 0을 반환합니다.)

 

 

 

 그렇다면 창마다 부여되는 '클래스 네임'이란 무엇일까요?

 

 사실 창이라는건, 생성될 때 아래와 같은 api들을 호출하는 절차를 거칩니다.

 

 RegisterClass(Ex) -> CreateWindow

 

 이 때 응용 프로그램에서는 지정된 클래스 명으로 창을 생성합니다.

 

 즉, '클래스 명'은 거의 바뀌지 않는다는 장점이 있습니다. 그러나, 창 이름은 수시로 바뀔 수 있습니다.

 

 메모장의 경우 '제목 없음 - 메모장' 에서 갑자기 'MyDocument.TXT - 메모장' 식으로 바뀌듯..

 

 클래스 네임이나 창 이름은 Spy++라는 Window Viewer를 통해서 살펴볼 수 있습니다.

 

 

 이에 대한 자세한 내용(한글)은 이 사이트를 읽으시면 바로 이해가 되실겁니다.

 

 http://www.winapi.co.kr/toollec/Spy/Spy.htm (혹은 www.winapi.co.kr - 개발툴 강좌)

 

 작성자 : 수학쟁이(NAVER)

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자바 람남 | 작성시간 10.12.27 잘봣습니
  • 작성자바 람남 | 작성시간 10.12.27 잘봣습니
  • 작성자바 람남 | 작성시간 10.12.27 잘봣습니
  • 작성자바 람남 | 작성시간 10.12.27 잘봣습니다~
  • 작성자바 람남 | 작성시간 10.12.27 잘봣습니다~
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼