2010-08-24 83 views
1

我想綁定一個XNA WinForms系統,這樣我就可以擁有一個遊戲編輯器,並且我需要爲它使用鼠標。由於XNA鼠標輸入類根據窗口位置報告鼠標位置,因此我需要將我在相同位置的窗體放置。我怎樣才能得到我的XNA遊戲使用的窗口的位置?Xna - 獲取窗口位置?

回答

4

我結束了這段代碼做:

 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

啊,所以給你一個參考的實際形式...很高興知道! – bcat 2010-08-24 01:00:15

+0

我其實從http://www.codeproject.com/KB/game/XNA_And_Beyond.aspx得到了第一行。對於如何獲得使用XNA的Windows窗體設置非常有幫助,雖然不完整。 – RCIX 2010-08-24 01:04:09

+1

-5將基於正在使用的窗口樣式而改變?所以它在經典造型,Xp造型和vista/7造型中都無法正常工作 – McKay 2010-08-24 15:40:40

1

XYGame.Window.ClientBounds結構的屬性應該給你你正在尋找的絕對窗口座標。

+0

*幾乎*這樣做,但它給了我窗口內容的左上部分的位置,而不是實際的窗口位置。看到我的答案,我是如何做到的。 – RCIX 2010-08-24 00:51:39

0

我用我的關卡編輯器也遇到過這個問題。我有一個PictureBox在我的Windows窗體,所以我需要的唯一事情初始化XNA遊戲時到:

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

其中Viewport是PictureBox的

現在XNA鼠標位置是否正確自動調整。