2010-08-24 6 views
1

게임 편집기를 사용할 수 있도록 XNA WinForms 시스템을 조작하려고하는데 마우스를 사용해야합니다. XNA 마우스 입력 클래스는 창 위치를 기반으로 마우스 위치를보고하기 때문에 같은 위치에있는 양식을 배치해야합니다. 내 XNA 게임에서 사용하는 창 위치는 어떻게 알 수 있습니까?Xna - 창 위치를 얻으시겠습니까?

답변

4

는이 코드와 함께 그 일을 결국!

+0

아, 실제 양식에 대한 참조를 제공합니다 ... 알아두면 좋은 정보! – bcat

+0

나는 실제로 http://www.codeproject.com/KB/game/XNA_And_Beyond.aspx에서 첫 번째 라인을 얻었다. XNA를 사용하기 위해 Windows 폼 설정을 얻는 방법에 대해서는 매우 도움이되지만 완전하지는 않습니다. – RCIX

+1

-5가 사용중인 창 스타일에 따라 변경 될 예정입니까? 따라서 고전적인 스타일링, XP 스타일링 및 Vista/7 스타일링 모두에서 올바르게 작동하지 않습니다. – McKay

1

구조체 Game.Window.ClientBounds 구조체의 XY 속성은 찾고자하는 절대적인 윈도우 좌표를 제공해야합니다. 단지 멋쟁이 작동

 Form gameWindowForm = (Form)Form.FromHandle(this.Window.Handle); 
     ... 
     myForm.Location = new System.Drawing.Point(gameWindowForm.Location.X - 5,gameWindowForm.Location.Y - 5); //-5 pixels for adjustment 

을 :

+0

* 거의 * 그렇지만 실제 윈도우 위치가 아닌 윈도우 내용의 맨 왼쪽 부분의 위치를 ​​제공합니다. 내가 어떻게했는지 내 대답을 보라. – RCIX

0

내 레벨 편집기에서이 문제가 발생했습니다. 내 윈도우 폼에있는 PictureBox를 가지고, 그래서 XNA 게임을 초기화 할 때 내가 필요한 유일한 것은 다음의 제품에 : Viewport가 PictureBox를

에게 있습니다

Mouse.WindowHandle = this.windowForm.Viewport.Handle; 

이제 XNA 마우스 위치가 자동으로 적절하게 조정됩니다.

관련 문제