Re: [問題] GUI 的穿透

看板Programming作者時間17年前 (2009/01/09 08:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
編譯器? 簡單的話,直接呼叫視窗的事件 複雜的話,用 API 做 SendMessage / PostMessage。 拖放的範例很多網站都有,甚至編譯器的開發者可能也有範例。 說清楚編譯器及你要做的東西的話,或許看過該範例的可以告訴你哪裡有。 ==> 本文由 "我被淡水的路寵壞了 <afz096.bbs@ptt.cc>" > 於 news:4dkW49%2489c%40ptt.cc 發表 > 用穿透這字眼無法確切的形容 > 將問題詳述如下 > 一個視窗上面有其他的物件, > 而這些物件幾乎將整個視窗佔滿。 > 而當我滑鼠在視窗上 click 或是拖曳時, > 這些 event 會被視窗上面的物件擷取, > 而我希望這些 event 可以直接傳給視窗。 > 圖示說明如下 > ┌─────────┐ > │視窗 a │ > │ ┌──────┐ │ > │ │ 物件一 │ │ > │ └──────┘ │ > │ ┌──────┐ │ > │ │ 物件二 b │ │ > │ └──────┘ │ > └─────────┘ > 當滑鼠在 a 點 press,在 b 點 release, > a 點 press 的 event 會被視窗擷取, > b 點 release 的 event 會被物件二擷取, > 想知道有甚麼樣的方式,可以讓物件二所擷取的 event 可以傳給視窗。 > 兩個想法如下: > 第一個是當視窗內的物件產生的時候,順便將視窗的 reference 傳進去, > 所以物件接受到 event 時,可以藉由 reference 交給視窗解決。 > 可是這樣的缺點是,當視窗內的物件越多,reference 會越多,記憶體使用效率並不好。 > 另一個想法是,在所有的物件最上層,建立一個完全透明的物件, > 而所有的滑鼠的 event 都由最上層透明的物件接收, > 在根據 event 觸發的座標,交給視窗或是相對應的物件來處理。 > 不過這樣要處理好 z 軸的順序,以及物件的透明度,而這是我的問題所在。 > 不知是否還有其他的解法,還請各位指教。 > -- 風禹科技驗證有限公司 ASP.NET Web News Reader 0.2.7 UTF-8 Beta 網站地圖 http://tlcheng.twbbs.org/wwwmap.htm 流域防洪/區域水資源/徐昇網/玫瑰圖/語音通訊 文章與程式 Basic/Fortran/Windows API/.Net/輔助說明檔 原始碼、文章與討論 微軟程式設計、系統管理使用新技術論壇討論區,網友回覆後即時簡訊、電子郵件通知: MSDN: http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14 TechNet: http://forums.microsoft.com/technet-cht/default.aspx?siteid=23 -- ASPNET News Reader http://tlcheng.twbbs.org/News/Reader.aspx RSS 2.0 http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=tw.bbs.comp.language
文章代碼(AID): #19PfE-00 (Programming)
文章代碼(AID): #19PfE-00 (Programming)