【界面库设计】关于鼠标事件感知问题
飞天御剑流 2013-04-07 01:16:09 近日在一个界面库的设计过程中,遇到一个鼠标事件感知的问题,就是当鼠标在一系列图元上(考虑overlap)经过或点击时,如何获得鼠标当前所经过或点击的图元?现在的方案,是利用现有的一个由已产生图元按生成顺序组成的队列,图元的抽象基类添加一个成员Is_xxx,检测鼠标坐标是否在图元内部,这个方案需要消耗线性搜索时间,而且即使鼠标没有经过的图元也可能被查询一次;还考虑过在图元绘制时,保存像素的对应图元对象的标识,这个方案可以获得常数搜索时间,但需要消耗较多的空间。
这两种方案都不能令人满意,看看各位有没有更好的想法,谢谢!