2012-09-26 3 views
-1

버튼을 클릭하면 팝업 스타일로 창을 만들고 보여줍니다. 그리고 창 밖을 클릭하면이 창을 숨기거나 파괴하려고합니다. wm_killfocus 메시지를 사용하여이 작업을 수행 할 수 있습니다. 창이 메시지를 받으면 창을 숨 깁니다. 하지만 문제는 다음과 같습니다. 창이 존재하면 버튼을 클릭하면 창이 숨겨집니다. 사실 : 버튼을 클릭하면 창에서 wm_killfocus 메시지를 수신 한 다음 WM_lbuttondown 메시지를 수신하고 버튼을 누르면 wm_killfocus를 수신 할 때 창을 숨기고 클릭 메시지 이벤트를 통해 창을 다시 표시 할 수 있습니다. 그래서 최종 효과는 숨기지 않습니다.팝업 창을 클릭 할 때 팝업 창을 숨기거나 없애는 방법

답변

1

대신 창을 즉시 파괴하는 대신 PostMessage()을 통해 자신에게 맞춤 창 메시지를 게시하십시오. 메시지를 받기 전에 버튼을 클릭하면 어딘가에 플래그를 설정하고 필요에 따라 기존 창을 업데이트합니다. 메시지 처리기가 메시지를 받으면 플래그가 설정되지 않은 경우에만 창을 숨기거나 소멸시킵니다.

+0

어느 것이 든 다른 방법이 있습니까? – jerui

관련 문제