2009-09-17 9 views
3

문제는 예를 들어 직사각형과 같은 그래픽으로 표시된 그래픽을 가지고 있으며 포인트가 thees 필드를 넘으면 캡처하려고합니다. 그래서 나는 사각형 사각형에 대한 corrrdinate를 찾으려고 노력하지만 Thay는 형태의 좌표이므로 마우스 위치와 일치하지 않습니다. 그래서 궁금화면상의 포인트 좌표를 찾으 시나요?

Point를 화면에 아닌 형태 또는 컨트롤러가 화면에 무엇을 COORD 찾을 수있는 방법이?

+0

내가 원하는 것을 이해할 수 없다. 그래픽으로 더 설명 할 수 있습니까? –

+0

현재 사용하고있는 내용을 보여주는 코드를 게시하면 질문에 대한 답변을 얻을 수 있습니다 :-) –

+0

Ahmed가 잘 모르는 것처럼 게시물을 다시 작성하고 다시 작성하십시오. – Cristina

답변

7

각 컨트롤은 변환을위한 PointToFoo 메소드입니다. 당신이 원하는 사람의 위치에 당신이 개체의 부모로부터이를 호출해야합니다 : 위의 두 예는 GVE 수

Point scrPos = panel1.PointToScreen(new Point(0,0)); 

참고 :

Point scrPos = this.PointToScreen(panel1.Location); 

다른 방법으로, 패널의 화면을 얻을 수있는 것은 좌표 패널의 테두리 크기로 인해 다른 결과.

+0

우수! 내가 포인트 scrPos = menuItemForm.PointToScreen (mSize.Location)를 사용할 수 있습니다 지금 ; 사각형 mSize가있는 지점을 찾고이 사각형의 마우스 오버를 감지합니다. – user170644

+0

이 항상 작동하지 않을 수 있습니다. 이 중복 게시물을 확인하십시오. http://stackoverflow.com/questions/4768677/c-sharp-how-to-get-the-coordinates-of-a-specific-point-on-screen-not-mouseloca/20688514#20688514 – dmihailescu

0

양식 내에서 this.CreateGraphics()을 호출하여 양식의 그래픽 개체를 사용하는 경우 사각형을 그릴 때 사용되는 좌표는 양식의 클릭 이벤트에서 반환 한 좌표와 정확히 일치해야합니다.

0

포인터가있는 좌표를 아십니까? GetWindowRect()을 호출하여 창의 좌표를 가져올 수 있으며 마우스 커서에서 위/왼쪽을 빼서 클라이언트 좌표를 가져올 수 있습니다.

나는 실제로 당신을 위해 할 수있는 기능이있는이 기억하는 것,하지만 내가 정의 GUI 컨트롤에서 다뤄 이후 약간의 시간이되었습니다.

관련 문제