[ 질문: 마우스 이벤트 ]
도구모음을 만드는데 사용되는 마우스 이벤트에는
OnMouseMove, OnMouseDown, OnMouseDown 등이 있습니다.
평소에는 평평하게 표시되어 있던 항목이 자신 위에 마우스가 오면 볼록하게
표시되는 기능이 있습니다. 아래아 한글의 메뉴가 그러한 것입니다.
자신 위에 마우스가 왔는지 여부는 OnMouseMove로 알 수 있어서
해당 항목을 볼록하게 표시 할 수 있습니다.
하지만 자신 위에 머물렀던 마우스가 이제는 다른 곳으로 이동했다는 메시지는 안 보이더군요.
이 메시지를 잡아낼 수 없으면 볼록하게 표시했던 항목을 원래대로 평평하게 표시하는데
많은 문제가 있습니다.
이것을 알려주는 이벤트가 없더라도 Timer를 이용하여 프로그래밍은 할 수 있지만
프로그램이 깔금하지 않은 것 같습니다.
그렇다고 폼에 있는 다른 모든 컨트롤들의 OnMouseMove 이벤트 처리기를 구현하면
프로그램이 더 복잡해질 뿐만아니라 마우스가 폼 밖으로 나간다면 잡아낼 수 없게 됩니다.
특히 보통은 폼의 일부라고 생각하고 있는 제목표시줄이 실제로는 프로그래머가
제어하기에는 많은 제한이 있는 것이어서 여기로 마우스가 왔는지도 알 수가 없습니다.
한편 OnExit는 마우스가 그 위에서 떠나고 있는 상황이 아니고
해당 컨트롤이 초점을 잃는 상황에 발생하는 것이어서 여기서는 사용하지 않는 것입니다.
어떻게 하는 게 최선책일까요?
.
|