관리 메뉴

드럼치는 프로그래머

[API/MFC] DestroyWindow 본문

★─Programing/☆─API | MFC

[API/MFC] DestroyWindow

드럼치는한동이 2011. 11. 1. 17:41

윈도우를 파괴한다.

이 함수는 WM_DESTROYWM_NCDESTROY 윈도우에 보내 비활성화 하고, 키보드 포커스를 제거하고 윈도우 메뉴를 파괴한다 그리고 쓰레드의 메시지 큐를 비우고, 타이머를 제거한다.

 

이 입력한 윈도우가 부모 또는 소유 윈도우라면 관련된 차일드 또는 소유된 윈도우를 자동적으로 파괴한다.

이 함수는 차일드 또는 소유된 윈도우를 먼저 파괴하고, 그러고나서 부모와 소유윈도우를 파괴한다.

그리고 모델리스 다이얼로그도 파괴한다.(CreateDialog로 생성된)

 

즉 이 함수는 같은 프로세스내의 윈도우만 파괴할 수 있다.

 

1.함수원형

BOOL DestroyWindow(

  HWND hWnd   // handle to window to destroy

);

 

2.파라메타

hWnd : 윈도우 핸들

 

3.리턴값

성공하면 Non Zero

실패하면 0



[출처]
DestroyWindow |작성자 시라소니




DestroyWindow 함수는 지정한 윈도우를 파괴하는 간단한 동작을 하지만 내부적으로 무척 많은 일을 한다.

일단 파괴되기 직전에 WM_DESTOY 에서 메시지를 보내 간단한 동작을 하지만 내부적으로 무척 많은 일을 한다.

일단 파괴되기 직전에 WM_DESTROY 메시지를 보내 종료 처리를 할 기회를 주며 키보드 포커스를 버리고 메뉴를 파괴하고 메시지 큐를 완전히 비운다.

동작중인 타이머가 있으면 파괴하고 클립보드 소유권을 제거 한다.

더 중요한 것은 만약 파괴되는 윈도우가 부모 윈도우일 경우나 소유자일 경우, 즉 자식 윈도우를 가지고 있을 경우 차일드를 같이 파괴 시킨다.

이때 각 차일드에게도 WM_DESTROY 메시지가 전달되며 차일드는 자신의 차일드에게도 WM_DESTROY 메시지를 보내준다.


[출처]
DestroyWindow 함수|작성자 동키


Comments