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 |