PostQuitMessage
| 원형 | VOID PostQuitMessage(int nExitCode); | 
| 인수 | ▶nExitCode : 종료 코드. 이 값은 WM_QUIT의 wParam으로 전달되며 잘 사용되지 않으므로 보통 0으로 전달한다. 이 값은 메시지 루프 종료 후에 다시 WinMain의 리턴값으로 재사용되며 결국 프로세스의 종료 코드가 되는데 프로세스의 종료 코드도 사용되는 경우가 드물다. | 
| 리턴 | 리턴값이 없다. | 
| 설명 | 스레드 메시지 큐에 WM_QUIT 메시지를 붙이고 즉시 리턴한다. WM_QUIT 메시지를 큐에 붙임으로써 시스템에게 이 스레드가 종료될 것이라는 것을 미리 알려준다. 메시지 루프는 보통 WM_QUIT 메시지를 받으면 종료하도록 되어 있으므로 이 함수를 호출하면 메시지 루프가 종료된다. 특히 이 함수를 호출하는 스레드가 주 스레드일 경우는 주 스레드의 메시지 루프가 종료됨으로써 프로세스가 종료된다. 단, 이 함수는 메시지를 큐에 붙인 후 즉시 리턴하므로 호출 즉시 프로세스가 종료되는 것은 아니다. 즉 PostQuitMessage 호출 후 다른 처리를 계속할 수 있으며 이미 메시지 큐에 들어와 있는 모든 메시지가 처리된 후에 WM_QUIT 메시지가 읽혀져야 종료된다. 반면 ExitProcess 함수는 즉시 프로세스를 종료하기 때문에 이 함수 아래에 작성된 코드는 실행되지 않는다. 통상 이 함수는 메인 윈도우의 WM_DESTROY 메시지 처리 코드에 작성되어 메인 윈도우가 파괴되면 응용 프로그램을 종료하는 역할을 한다. 차일드 윈도우가 WM_DESTROY에서 이 메시지를 호출해서는 안된다. 그래서 DefWindowProc은 WM_DESTROY 메시지를 디폴트 처리할 때 PostQuitMessage를 호출하지 않도록 되어 있다. | 
| 참고함수 | PostMessage, SendMessage | 
| 플렛폼 | 95이상 | 
| 본문참조 | 
'C/C++/MFC' 카테고리의 다른 글
| 개발자가 알아두면 좋은 ASP.NET 지식 (세션편) (0) | 2009.02.09 | 
|---|---|
| 인터페이스와 COM의 의미 (0) | 2009.02.09 | 
| ExitProcess(), TerminateProcess(), PostQuitMessage() 차이점 (0) | 2009.02.09 | 
| 윈도우 핸들 구하는 방법 (0) | 2009.02.09 | 
| 트레이로 가는 애니메이션 출력하기 (0) | 2009.02.09 |