2013-07-09 4 views
0

OpenTk.GLControl을 사용하는 프로그램이 있습니다. 이제 내 청취자는 마우스가 "glControl1"이라고 말하면 마우스가 움직일 때마다 마우스 좌표를 가져 오려고합니다.OpenTK.GLControl에서 마우스 좌표를 가져 오는 방법은 무엇입니까?

그럴 수 있습니까? 샘플 코드.

private void glControl1_MouseHover(object sender, EventArgs e) 
{ 
    // get the current mouse coordinates  
    // ......... 
} 

답변

0
나는 잘 모릅니다

, 무엇 OpenTk.GLControl이지만 :

나는 윈도우 폰에 슬쩍 이벤트를 처리하고이 한되었다

private void PhoneApplicationPage_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) 
    { 
     //string to save coordinates of tap 
     TapCoordinatesXBegin = e.GetPosition(LayoutRoot).X.ToString(); 
     TapCoordinatesYBegin = e.GetPosition(LayoutRoot).Y.ToString(); 
    } 

을 그리고 난 같은 이벤트 MouseHover을 기억 해달라고 - 아마 MouseEnter?

+0

내가 OpenTk :(작동하지 않습니다를 –

2

OpenTK.GLControl은 System.Windows.Forms.Control을 상속받습니다. 다음 코드 스 니펫을 사용하여 마우스 위치를 가져올 수 있습니다.

private void glControl1_MouseHover(object sender, EventArgs e) 
{ 
    Control control = sender as Control; 
    Point pt = control.PointToClient(Control.MousePosition); 
} 

자세한 내용은 MSDN WinForms 설명서를 참조하십시오.

+0

사용 MouseMove 이벤트 대신 이렇게하면 가리키는 로컬 전자 매개 변수에 마우스 포인터의 좌표 – TomXP411

+0

감사를 제공합니다.. GLControl 속성에 나를! – Austin

0

문제는 잘못된 이벤트를 사용하고있는 것입니다. WinForms의 많은 UI 액션은 액션 당 여러 이벤트를 트리거합니다. 호버는 툴팁을 팝업하는 것과 같은 것에 사용됩니다. 호버업에서는 좌표가 필요 없기 때문에 좌표를 얻지 못합니다.

원하는 것은 MouseMove 이벤트입니다. 이것은 마우스의 위치를 ​​추적하는 데 사용됩니다

private void glControl1_MouseMove(object sender, MouseEventArgs e) 
    { 
     foo = e.X; 
     bar = e.Y; 
    } 
관련 문제