摘要:
在上次的随笔中提到了图形元素的move,这次说说图形元素的redim,在通常的绘图软件中都知道选择一个图形元素后会出现多个控制点,当鼠标移动到这些控制点的时候会自动改变鼠标的形态,这样可以很形象的知道拖动这些控制点将会出现的效果。同样,在这次的redim功能的时候的时候,也是给图形元素添加了多个控制点,比如直线添加了两个控制点,矩形添加了8个控制点(暂时没有实现矩形的旋转,将在下一次随笔连同文件的保存一并用截图的方式展现出来),先看看这些的效果截图。其实,当鼠标放到控制点上的时候,会自动改变鼠标的状态,可是截图的时候没有显示出来这个效果 在图中可以看到通过鼠标的拖动可以改变图形的状态,同时,. 阅读全文
摘要:
接着上一随笔中的那个小绘图工具,逐步完善其中的功能,上次说了关于文件树的操作,主要是导航文件的新建和删除,把那部分单独拿出来是因为遇到同事在项目中处理那部分功能时没有处理好,所以自己单独实现了一下,这次主要是绘制元素以及移动,当然现在只能绘制很简单的元件,比如直线和矩形,然后可以选中他们,并对他们进行移动,当然在以后的随笔中会逐步的完善,比如旋转以及可以绘制更负责的元素。先看看这部分的效果图吧,可能截图显示的效果不太好。呵呵 在以后会逐步的完善。 其实,肯定有很多人觉得这部分的功能很容易实现,哈哈,也真的是很容易实现,处理好MouseDown,MouseMove,MouseUp三个事件就可以. 阅读全文
摘要:
最近手上没有确实的项目,可以趁这段时间学学GDI,之前也一直有在学习,不过都是一些皮毛的东西,当然现在也只是在学皮毛,皮毛学多了,就成大师了,哈哈,想做一个实实在在的GDI类型的项目,这样不但可以巩固知识,也可以学到更多的知识,会把每部分的进展都记录到博客上来,哈哈,希望可以和大家一起学习。那就先看看这个C/S的界面效果吧,目前只是这样布局的,当然可以根据大家的自身爱好,同时需要补充的是,到现在为止,只是晚上了文件的导航树功能,截图先: 中间的绘图区暂时没有实现什么实质性的功能,汗死!!,下次随笔贴出中间的绘图效果图 阅读全文
摘要:
明天就要放假回家了,哈哈,忙了一个多月的B/S项目也终于告一段落了。过年来以后又可以自己继续研究GDI和GIS,哈哈,在放假回家之前还是来写写博客,要不又要过很长时间才能过来了。 用过CAD幻灯片功能的人都知道,其中有个图片管理器,可以图片显示.sld格式的文件,说白了,就是和QQ的头像选择功能类似,哈哈,很早以前就觉得这功能很不错,可以加以利用。 用C#自定义了一个功能类似的控件。哈哈,看看图吧。 截图的时候显示稍微有点问题,哈哈,凑合可以看。 后台添加图片的代码也很容易。简单的看看。代码 Code highlighting produced by Actipro CodeHighligh 阅读全文
摘要:
最近做B/S的项目,实在是有点忙,虽然感觉没什么难度,可是复杂的流程和巨大的工作量还是很无奈。上班时间根本没有时间再学习GIS,所以只好下班回去简单的学习一下。本来上讲中提到这讲会介绍MapTOCControl的右击菜单,哈哈,这个暂时没整理好,还是先看看GIS的查询吧。哈哈。 老规矩,有图有真相,看看效果图。 在GIS中查询分为:属性查询和空间查询,分别对应的接口是IQueryFilter和ISpatialFilter,当然后者继承了前者。 在效果图中,用鼠标点击地图弹出BalloonCallOut的是利用空间查询实现的,在右边的查询条件中点击查询按钮实现的定位查询是属性查询。(哈哈,我想大 阅读全文
摘要:
前几遍都在讲自定义工具,在开始将弹出菜单之前先看看功能效果图吧。 可以看到之前几个随笔中讲到的自定义工具在这些效果图中都有展示,同时也展示了这次要将的弹出菜单实现后的效果。在主地图的视图中右击鼠标会弹出菜单,这个菜单里面的功能和工具栏中的功能一样,在toc导航工具中右击地图的时候和右击图层的时候弹出的菜单内容是不同的。选择map的时候可以添加图层和全图,选择layer的时候可以删除当前选择的图层和刷新。 这讲主要说说弹出菜单的实现代码,其他的代码在以后会慢慢补充。 先看看主视图中弹出菜单的实现代码,和在前几讲中添加的方法一样,只是这次的容器是ToolbarMenu.看看代码的实现:代码 Co 阅读全文
摘要:
这次要说的和前一篇中提到的全图是一样的,都是命令类功能,在自定义的时候只要重写OnClick()方法即可。同样如果想用button写,只要知道他们分别对应着ControlsMapZoomToLastExtentBackCommand和ControlsMapZoomToLastExtentForwardCommand,之后的代码就很容易了。简单的看看在button中实现这两个功能的代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- #regi 阅读全文
摘要:
全图是个不需要和地图进行交互的命令类功能,在实现自定义功能的时候只要重写OnClick事件即可,在自带的类中,也只有ControlsMapFullExtentCommand这个Command类。哈哈,这个功能几句话就解决了,看看代码吧。代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- publicMapFullExtent(){string[]res=GetType().Assembly.GetManifestResourceNames(); 阅读全文
摘要:
前一篇随笔中记录了地图放大功能的实现,其中很多方法和这篇中要说的缩小很像,比如ControlsMapZoomOutTool和ControlsMapZoomOutFixedCommand。那在这篇中就忽略掉这两个方法的实现了,直接看看自定义缩小功能的实现代码代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--publicMapZoomOut(){string[]res=GetType().Assembly.GetManifestResourceNa 阅读全文
摘要:
刚刚才开始学习GIS的二次开发,前面一个随笔中记录了几种实现平移的方法,今天就来看看地图放大的功能代码。 同样在实现放大的时候我们也来看看几种不同的方法(按钮的Event事件中触发,还有就是利用Com技术,编译为DLL,注册到机器中)。 第一种方法编译成DLL注册代码 Code highlighting produced by Actipro CodeHighlighter (freeware)h... 阅读全文
摘要:
在上一篇文章中,简单的实现了一些常用的功能,当时里面的IToolBarControl是通过设置Buddy属性和AxMapControl绑定的,接下来的几篇文章会简单的介绍一下自己如何实现这些功能。 今天简单的看看平移(Pan).简单的看了一下,目前我这边有三种方法可以实现Pan,当然这三种方法都是利用AE自带的一些方法或是属性实现。 AE本身在二次开发的时候为了方便开发人员,将各个功能独立起来,开... 阅读全文
摘要:
最近一段时间在学习GIS的二次开发,作为新手,最好的方法就是泡论坛,看原码,当然涉及到地理方面的专业知识,不可能说一两天就可以弄懂,只有在学习编程的过程中慢慢的去体会一些地理专业上面的知识。 就几天的时间,学了一点皮毛,先贴图看看功能吧。 大致的功能包括 ①:鹰眼 ②:属性数据查询定位 好像也就上面两个功能,在最近的几天会陆续的完善功能 接下来的工作大致包括自定义工具栏(... 阅读全文
摘要:
好久没来写东西了,一直忙着手上的项目。趁着最近空闲的时间,继续研究GDI+。之前看到一个系统中图形编辑功能,感觉很好很强大,后来就准备自己也实现一个,万事开头难,先一步一步的来吧,今天先来讲讲在panel中write text(模仿CAD中的文本绘制)。 大致的思路:用鼠标在Panel中选中一块区域,然后,panel中出现input area,供用户输入,输入完后鼠标右键结束输入,接着用DrawS... 阅读全文
摘要:
之前在网上看时间控件,看到这个http://hi.baidu.com/fxh19860822/blog/item/dd17d923343556ae4623e8e9.html,感觉颜色蛮好的,后来觉得要是时针、分针、秒针也可以供用户交互就更好了,不管怎样,有了idea就试试吧。 老规矩,先看效果图吧(钟面的颜色用了上面给出地址中时钟的钟面颜色)。 先简单的介绍一下功能吧:这个时间控件,三个指针可以... 阅读全文
摘要:
如果没记错的话,好像是第一次在用趋势图显示数据的时候,就遇到过这个问题,当时是在一个趋势图中显示一个月中每天的数据趋势变化,结果就是根本在一张图中显示不下,X轴的文字标注都重叠到一起,当时用的是PB,里面的图形显示功能非常强大,后来好像是将文字直立显示的,避免了标注的重叠。 最近同时好像在搞趋势图,又想起这个问题,就试着在里面加个slider实现拖动以便可以显示“被多出”的... 阅读全文