找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 782|回复: 9

[求助]:在v8中 鼠标在图中移动到某个元素 那么这个元素就高亮显示出来这是如何编程做

[复制链接]
发表于 2004-5-30 12:07:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我觉得这样很方便 但是如果用mdl编程起来麻烦了
难道是怎么样找到鼠标所在位置是否有元素那
如果用搜索是不是太费时间了 因为每移动一下鼠标
就要搜索一次 元素多得话 搜索比较慢
不知道v8里面有这个函数吗
我还要在ms j 版下面使用 所以ms j 版也要这个功能
请大侠来指点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-30 14:28:40 | 显示全部楼层
我也很想知道啊 ,我猜应该 有个后台程序在进行监控。要么就是V8本身在低层支持的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-30 14:36:05 | 显示全部楼层
也就是根据Mouse位置查索引,在一个范围内,并不是全图都找一遍,确定一个小范围之后,再进行二次查询,都在内存中执行,也较快,这方面有很多算法,可以找一下,比如Oracle spatial里面所用的算法,它存的数据量很大,查询也很快,可以借鉴一下.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-30 15:07:00 | 显示全部楼层
好了 原来mdlLocate_findElement 可以直接使用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-31 09:10:30 | 显示全部楼层
看来是已经实现此算法了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-31 10:39:53 | 显示全部楼层
V8中鼠标停在元素上时,会有关于元素的类型、层、所在参考文件的信息的标签。
这个标签显示的内容有MDL的函数可以跟踪的,并可以修改其显示内容。
mdlLocate_setFunction (LOCATE_PROVIDE_PATH_DESCRIPTION, provideDescription);
每次鼠标停在元素上时,程序都会自动调一次这个函数,可以得到鼠标停在的那个元素。
通过这个接口,你可以加入你的程序,来处理鼠标处的元素。

Private void provideDescription
(
DisplayPathP    path,           /* => display path */
MSWChar*        description,    /* <=> description */
MSWChar*        refStr          /* => Ref string */
)
    {
    ElementRef  elmRed;
    MSElement   el;
    int         elSize;
       
   // Get the element
    elmRed = mdlDisplayPath_getCursorElem (path);
    elSize = elementRef_getElement (elmRed, &el, sizeof el);
   
    if  (LINE_ELM == mdlElement_getType (&el))
        mdlWideChar_strcpy (description, L" - This is a Line element Line element's is 3! 线元素的类型是3!");
    else
    {
          mdlWideChar_strcpy (description, L" MDL is FUN!");
    }   
    return;
    }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-3 08:31:01 | 显示全部楼层
真是高手呀!版主应该给这个帖子多多加分!
provideDescription函数中的refStr的含义到底是什么?我看了原文的帮助也还是有些说不清。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-3 08:50:11 | 显示全部楼层
refStr应该是返回当前高亮元素的参考文件信息吧,如'Ref 2 (map.dgn)'!

另外,该函数要在“精确捕捉”开启的状态下才有效。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-6 14:18:55 | 显示全部楼层
gp341你好:
        你能不能详细的介绍一下你是怎么实现的.我也想使用此功能
不胜感激
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-7 10:10:46 | 显示全部楼层
在你的动态显示里面使用mdlLocate_findElement 就行了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-24 05:04 , Processed in 0.200370 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表