我嘗試了幾次不同的代碼,但每次都遇到錯誤。 基本上,我試圖讓「窗口」類似資源管理器中說,油漆,MediaPlayer的,在那裏你可以拖動然後圍繞,與它們進行交互,最小化和關閉。當然,如果你點擊一個窗口,它下面的一個窗口(它們可以重疊)不應該受到影響。如何製作窗口管理器?
我知道如何做到這一點,我有I類呼叫窗口,循環列表,通過它,我只與第一窗口交互包含鼠標點擊的位置。這樣,其他窗口重疊不會受到影響。 [1]
接下來,我不得不這樣做,以便兩個重疊的按鈕不會在用戶單擊「兩個按鈕的交集」時被激活。我通過使用上面使用的相同方法來處理這個問題。但我現在面臨的問題是,如果我按住左鍵單擊,但我決定不單擊按鈕,則將鼠標從按鈕上拖離,然後釋放左鍵單擊,以便按鈕單擊事件不會被激活。但是,當我從按鈕的邊界移除鼠標,並說,進入另一個...新按鈕被激活。它不應該。 [3]
我的設置是這樣的: 我有一個叫Window的類。 在Window中,我有一個名爲Interface的類的列表(類似於WinForms中的Control類)。 每個接口中有一個結構,其中包含4個布爾變量,如果左/右目前下跌了,如果他們在先前的處理了。 (prevLeft,prevRight,currLeft,currRight)
所以,我準備放棄(我還沒有,所以我仍然有源代碼),但我需要一個良好的結構,使面向對象類型的應用程序。但是,我沒有使用WinForms。我需要單獨的結構幫助,因此不需要實際的代碼,描述就足夠了。我需要避免上面提到的三個問題。
你說你不使用WinForms,那麼什麼平臺你還在使用嗎?你仍然應該顯示你的代碼。 – OneFineDay
我使用的是Xna。 d渲染速度比GDI快。代碼非常冗長。我應該將其上傳到Pastebin,還是應該只在一小部分中進行編輯? – Dave
我只會說你遇到麻煩的代碼。所以我們可以看到是否可以看到任何優化或錯誤。瞭解事件如何響應以及如何佈置將有助於您的邏輯。 – OneFineDay