看板Programming
标 题Re: [问题] GUI 的穿透
发信站=?big5?B?SElTRFQgrbes6qzsp97F58PSprOtraS9pX (Fri Jan 9 15:51:59 2009)
转信站ptt!news.ntu!feeder.seed.net.tw!netnews!not-for-mail
编译器?
简单的话,直接呼叫视窗的事件
复杂的话,用 API 做 SendMessage / PostMessage。
拖放的范例很多网站都有,甚至编译器的开发者可能也有范例。
说清楚编译器及你要做的东西的话,或许看过该范例的可以告诉你哪里有。
==> 本文由 "我被淡水的路宠坏了 <[email protected]>"
> 於 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