2008-09-01 5 views
0

Visual Basic 2005 Express에서 quick-n-dirty 노브 컨트롤을 만들 필요가 있습니다.이 컨트롤은 마우스로 "잡아"커서를 위/아래로 움직여 값을 증가/감소시킵니다. 노브 자체가 움직이지 않기 때문에 마우스 움직임을 컨트롤의 사각형 밖으로 추적해야합니다.Visual Basic에서 마우스 끌기를 구현하는 방법은 무엇입니까?

ImageList을 사용하여 Label을 사용하여이를 구현합니다 (다양한 위치에서 노브를 나타내는 127 비트 맵 목록이 있음).

어떤 이벤트에 반응해야합니까?

답변

0

세 가지 이벤트 (마우스 아래로, 마우스 이동 및 마우스 위로)를 처리하는 컨트롤이 필요합니다. Mouse Down 이벤트에서 마우스를 캡처해야합니다. 즉, 캡처 된 컨트롤에 마우스 메시지가 전송됩니다. 마우스 이동 이벤트에서 입력이 캡처되면 마우스가 움직이는 양에 따라 표시된 이미지를 업데이트하십시오. 입력이 캡처되면 마우스 업 이벤트에서 캡처를 해제하십시오.

부울 jjnguy가 필요하지 않습니다. 컨트롤의 캡처 속성이 읽기 가능하므로 캡처가 설정되었는지 확인할 수 있습니다.

0

문제는 mouse_move 이벤트에서 마우스가보고 한 좌표에 따라 표시해야하는 비트 맵을 결정하는 것입니다. 당신은 좌표를 변환하기 위해 약간의 마법을 수행하고 올바른 이미지를 선택하는 데 사용할 수있는 값을 찾아야합니다.

수학에서는 너무 복잡하고 시행 착오가 들리지 않습니다. Skizz는 이미 이벤트를 캡처하는 방법을 보여줍니다.

관련 문제