[問題] GUI 的穿透

看板Programming作者 (我被淡水的路寵壞了)時間17年前 (2009/01/08 17:00), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/3 (看更多)
用穿透這字眼無法確切的形容 將問題詳述如下 一個視窗上面有其他的物件, 而這些物件幾乎將整個視窗佔滿。 而當我滑鼠在視窗上 click 或是拖曳時, 這些 event 會被視窗上面的物件擷取, 而我希望這些 event 可以直接傳給視窗。 圖示說明如下 ┌─────────┐ │視窗 a │ │ ┌──────┐ │ │ │ 物件一 │ │ │ └──────┘ │ │ ┌──────┐ │ │ │ 物件二 b │ │ │ └──────┘ │ └─────────┘ 當滑鼠在 a 點 press,在 b 點 release, a 點 press 的 event 會被視窗擷取, b 點 release 的 event 會被物件二擷取, 想知道有甚麼樣的方式,可以讓物件二所擷取的 event 可以傳給視窗。 兩個想法如下: 第一個是當視窗內的物件產生的時候,順便將視窗的 reference 傳進去, 所以物件接受到 event 時,可以藉由 reference 交給視窗解決。 可是這樣的缺點是,當視窗內的物件越多,reference 會越多,記憶體使用效率並不好。 另一個想法是,在所有的物件最上層,建立一個完全透明的物件, 而所有的滑鼠的 event 都由最上層透明的物件接收, 在根據 event 觸發的座標,交給視窗或是相對應的物件來處理。 不過這樣要處理好 z 軸的順序,以及物件的透明度,而這是我的問題所在。 不知是否還有其他的解法,還請各位指教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.136.149.195

01/08 18:04, , 1F
物件二事件函式中再做一個事件,傳給視窗事件
01/08 18:04, 1F

01/08 19:22, , 2F
你是要 "Drag and Drop" ? google 一下
01/08 19:22, 2F

01/09 00:19, , 3F

01/09 14:22, , 4F
感謝!
01/09 14:22, 4F
文章代碼(AID): #19PS39FT (Programming)
討論串 (同標題文章)
文章代碼(AID): #19PS39FT (Programming)