2008-10-27 6 views
5

거의 모든 Windows 응용 프로그램에서 비 클라이언트 영역에서 마우스 버튼을 누르고 있으면 그림이 멈추는 것을 알 수 있습니다. 왜 이것이 필요합니까?Windows : 윈도우 장식에 마우스를 놓음

예를 들어 회전 큐브를 표시하는 Managed Direct 3D 응용 프로그램이 있습니다. 제목 표시 줄 위에 포인터를 놓고 마우스 단추를 누르고 있으면 큐브는 루프에 이러한 조건을 코딩하지 않아도 회전을 멈 춥니 다.

왜 그림이 중단 되었습니까? 이점은 무엇입니까? 가장 중요한 것은이 문제를 어떻게 해결할 수 있습니까?

+0

이 '기능'은 디버깅에 유용합니다. 보다 정밀한 검사를 위해 회전하는 큐브를 일시 중지합니다. –

답변

7

제목 표시 줄을 클릭하면 a brief pause이 표시되는 반면 창 관리자는 드래그를 클릭하거나 드래그 (이동)할지 여부를 결정하려고 시도합니다. 마우스를 놓을 때까지 윈도우 관리자가 자체 메시지 루프를 설정하고 메시지를 보내 게됩니다. 당신의 윈도우는 메시지를 처리 ​​할 수 ​​있습니다. 왜냐하면 그것들은 여전히 ​​디스패치 될 것이기 때문입니다. 그러나 애니메이션이 커스텀 메시지 루프에 의존한다면, 모달 드래그 루프가 끝날 때까지 멈추게 될 것입니다.

메시지에 대한 응답으로 애니메이션을 트리거하여이를 해결하십시오. 타이머는 나에게 좋은 선택입니다.

+0

내 응용 프로그램이 사용자 지정 메시지 루프에 의존하지 않는다는 것을 분명히 밝힙니다. 또한이 조건은 Windows XP 및 2000의 모든 응용 프로그램에 적용됩니다 (다른 사용자는 테스트하지 않았습니다). –