잊지 않겠습니다.

1.요약

특정 Thread 나 Window 에 아무런 영향을 끼치지 않으면서 단순히 그 Thread 나 Window 가 살아있는지를 확인하고 싶을때 이 메세지를 사용한다.

2.본문

MSDN 의 '색인' 에는 나와있지 않지만, 윈도우 메세지 종류에 WM_NULL 이라는 메세지가 존재한다. MSDN 이나 다른 책에서 WM_NULL 메세지를 benign message 라고 소개하고 있다.

WinUser.H 파일에 아래와 같이 정의되어 있다.

#define WM_NULL                         0x0000

이 메세지는 메세지 큐에 날라가긴 하지만, 어느 윈도우에서도 이 메세지를 처리하지 않기 때문에 그냥 메세지 큐에 들어가기만 하는 메세지이다.  그럼 윈도우는 왜 이런 메세지를 만들어 놓은 것일까?

Debugging Application 에서 보면 이 메세지를 정지해있는 혹은 메세지큐가 idle 상태에 있는 thread 를 깨우기 위해서  사용하고 있다. 또한 해당 윈도우가 정상적으로 메세지를 받을 수 있는 상태인지 단순히 확인만 하고 싶을때 사용한다.

3.예제

PostMessage(m_hwndTarget, WM_NULL, 0,0); // 일반 메세지 보내는것과 같습니다.

Posted by Y2K
,