吕雪松请进!(100分)

  • 主题发起人 gangyizhu
  • 开始时间
G

gangyizhu

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我发给您的一封信,但好像您的邮箱变了。我没发出去,所以贴这里了。
吕老师,您好!
我又要打扰您一次了。
我的图形绘制最终还是决定自己作了。
现在我的软件已经实现了:基本的构件制图功能;图形连接处理;图层管理;图元任意定义;
但是,由于水平有限,加上时间比较仓促,我从开始写到现在,只有2个月时间。
这里面还有一些问题,想向您请教一下.
1,文本编辑框的问题,我到现在还是没有处理好,我一直想作象windows绘图板一样的文本编辑效果,它应该是纯用API实现的。
2,在图形绘制和操作时,由于同一个复合图上,有各种图形对象,包括:图元对象和连接线对象,文本对象等。对各种对象,选中之后又有不同的操作方式,比如选中左上角,右上角等,由于选中不同的对象鼠标的拖放、点击要有不同的相应事件。我想请教一下,您对这些纷繁复杂的鼠标捕捉动作是如何管理和实现的。我现在用的是最笨的办法,就是用枚举类型判断鼠标状态,一层一层判断鼠标的状态,这样程序显得较乱。而且下一步要作无级redo,undo如果这样的鼠标处理,肯定没法实现。请您指点对这种众多的鼠标状态如何处理。


        致
礼!


        朱刚毅
        gangyizhu@163.com
          2003-08-26
 
1,建议你可以用一些现成的透明文本框控件来实现,这样你的成本会减少很多;当然你可以直接用API来做,不过可能会花点功夫的。
2,我的地物是放在一个链表中的,多层地层就是多个链表,我就是一个个判断的,不过有索引,速度很快,呵呵,你有更好的办法告诉我一声。
 
呵呵,吕老师,你可能误解我第二个问题了。
你说的应该是图形对象的鼠标扑捉和跟踪,这个功能我已经作了。
我的问题是:当鼠标Down,Up,Move时会有不同的对象被选择,会有各种事件被触发。这样
同一个绘图板的鼠标Down或Up或Move时,可能有多种情况出现,我现在对这些程序自己感觉很乱,管理得不好,。条理不够清晰。我想知道您在具体实现时,是如何实现的?
谢谢!
 
我觉得不乱,MouseDown, Up, Move 和DblClick都有固定的顺序,你可以通过设定多个参数来区别这几个状态。另,我另外包装了一个GeoTool类,来描述GIS中的各种鼠标操作,如画折线的效果、放大的开窗效果、画多边形、画贝塞尔曲线的鼠标效果...等,很方便,用不着直接和鼠标打交道了。当然各有各的实现方法,你可以参照MFC的例子DrawCli来研究。
 
吕兄你还是没有彻底理会这个兄弟的意思啊,呵呵
他的意思是说当同一图像层上两个地物重叠了的话,在重叠部分这些鼠标的动作的处理如何?

我觉得应该考虑一下类似于置前置后的功能呵呵,以前我们处理的时候是出现一个对话框,列
出两个地物的条目,让用户选择,也不错,这样子在三个或者更多的时候就好了,^_^,自己看着
办,都还不错!
 
来听课...
 
重新又Review到这个帖子了

不知道你现在是否已经设计出了好的流程。如果你的需求的确是如徐永进所言的话,那么我觉 得你可以去参照 MapInfo 等软件的操作流程,毕竟他们的成熟的软件,他的流程应该是比较合理 的。
我的工作流程如果:

1,如果是单个图层中选择地物,那么无论地物的上下叠置关系,凡是落在选择范围内的地物都被选中;
2,如果是多个图层中选择地物,那么只有落在选择范围内的最上层中的地物被选中;
 
顶部