C#制作鹰眼的详细全过程(带注释)实例代码_C#教程

axMapControl1是主控件,axMapControl2是鹰眼控件

要看清楚事件响应

 

1.鹰眼地图资源载入

复制代码 代码如下:

privatevoid axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)

        {

            //当主地图显示控件的地图更换时,鹰眼中的地图也跟随更换

            axMapControl2.LoadMxFile(axMapControl1.DocumentFilename);

            axMapControl2.Extent = axMapControl2.FullExtent;

        }

2.绘制鹰眼矩形框

复制代码 代码如下:

private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e)

        {

 

            // 得到新范围

            IEnvelope pEnv = (IEnvelope)e.newEnvelope;

 

            IGraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer;

            IActiveView pAv = pGra as IActiveView;

            //在绘制前,清除axMapControl2中的任何图形元素

            pGra.DeleteAllElements();

 

            IRectangleElement pRectangleEle = new RectangleElementClass();

            IElement pEle = pRectangleEle as IElement;

            pEle.Geometry = pEnv;

 

            //设置鹰眼图中的红线框

            IRgbColor pColor = new RgbColorClass();

            pColor.Red = 255;

            pColor.Green = 0;

            pColor.Blue = 0;

            pColor.Transparency = 255;

            //产生一个线符号对象

            ILineSymbol pOutline = new SimpleLineSymbolClass();

            pOutline.Width = 2;

            pOutline.Color = pColor;

 

            //设置颜色属性

            pColor = new RgbColorClass();

            pColor.Red = 255;

            pColor.Green = 0;

            pColor.Blue = 0;

            pColor.Transparency = 0;

            //设置填充符号的属性

            IFillSymbol pFillSymbol = new SimpleFillSymbolClass();

            pFillSymbol.Color = pColor;

            pFillSymbol.Outline = pOutline;

 

            IFillShapeElement pFillShapeEle = pEle as IFillShapeElement;

            pFillShapeEle.Symbol = pFillSymbol;

            pGra.AddElement((IElement)pFillShapeEle, 0);

            pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

        }
 

3. 实现互动

复制代码 代码如下:

   private void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)

        {

            IPoint pPt=new PointClass ();

            pPt.PutCoords (e.mapX ,e.mapY );

            //改变主控件的视图范围

            axMapControl1 .CenterAt (pPt );

        }

时间: 2024-09-28 06:08:58

C#制作鹰眼的详细全过程(带注释)实例代码_C#教程的相关文章

C#的XML两种代码注释实例说明_C#教程

在C/C++,JAVA中,有两种注释,一种是单行注释,即两根反斜杠(//),另一种是多行注释,即以/*开头,以*/结尾. 在Java中,多行注释(Multiline Comment)分为两种形式: 1.普通多行注释,比如 复制代码 代码如下: /* *多行注释 */ 2.Javadoc注释,比如 复制代码 代码如下: /** *Javadoc注释 */ 当Java源文件编译的时候,Javadoc工具会读取源文件当中的Javadoc注释内容,并生成相应的HTML文档.供开发者参阅API相关的内容.

PHP制作登录异常ip检测功能的实例代码_php实例

使用函数查询数据库遍历实现 /** * 不在常用ip地址登录返回描红信息 * @param string $ip ip地址 * @param string $name 用户名 * @return string */ function errorIp($ip,$name){ $nowip = get_client_ip(); //判断ip和当前ip是否相同,不同则查询数据库对比 if($ip == $nowip ){ //相同直接返回字符串 $str = '<font color="blue

PHP制作登录异常ip检测功能的实例代码

使用函数查询数据库遍历实现 /** * 不在常用ip地址登录返回描红信息 * @param string $ip ip地址 * @param string $name 用户名 * @return string */ function errorIp($ip,$name){ $nowip = get_client_ip(); //判断ip和当前ip是否相同,不同则查询数据库对比 if($ip == $nowip ){ //相同直接返回字符串 $str = '<font color="blue

C#控制台带参数程序源码编写实例讲解_C#教程

像ipconfig /all 这样的CMD命令想必大家都知道,但是很多童鞋可能不知道怎么写这样的控制台带参数的程序,其实很简单,我们先看建立项目的默认代码: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _1 { class Program { static void Main(string[] args) { } } } 好了.

C#创建线程带参数的方法_C#教程

1.无参数线程的创建 Thread thread = new Thread(new ThreadStart(getpic)); thread.Start(); private void showmessage() { Console.WriteLine("hello world"); } 2.带一个参数的线程 使用ParameterizedThreadStart,调用 System.Threading.Thread.Start(System.Object) 重载方法时将包含数据的对象传

JAVA JNI原理详细介绍及简单实例代码_java

JAVA JNI原理 JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C.C++)的动态库进行交互,给其它语言发挥优势的机会. 有了JAVA标准平台的支持,使JNI模式更加易于实现和使用.在此总结了下面这个知识图: 实例: 环境说明:ubuntu 10.4.2 LTS系统 程序清单1:src/com/magc/jni/HelloWorld.java /** * */ package com.magc.jni;

Fireworks mx 2004制作风景类Logo全过程

过程 由于我是初学FW,有欠缺的地方,希望能指出.十分谢谢!(PS:本教程仅仅针对ilogo-snake的这个logo进行展开,并不一定具有共性或定律.教程对象:新人) Best View:IE5.0+ or NetCaptor4.0+Display At:1024*768 ---------------------------------- [教程]:共3个部分. 一.准备 二.制作(Step1- 5.[背景Step1-3:边框Step4:动画Step5(稻田动画.文字动画.云朵动画.树叶动画

pureQuery带注释的方法风格简介

pureQuery 是一种高性能 Java 数据访问平台,其目标主要是简化数据访问应用程序的开发和管理.它由工具.API 和运行时组成.本文介绍 pureQuery 带注释的方法风格 -- 这是一种简单.灵活的风格,属于命名查询(named-query)范例,可以静态或动态地执行 SQL.本文先解释为什么开发人员要选择使用带注释的方法风格编写 pureQuery 应用程序,再解释带注释的方法风格与 pureQuery 内联编程风格之间的差异,并简要概述 pureQuery 带注释的方法的强大特性

有同事看到有人用vs2010编程制作的VB程序可以带二次编译功能?

问题描述 如题有同事看到有人用vs2010编程制作的VB程序可以带二次编译功能?有大神知道这是怎么实现的?是嵌入什么编译器? 解决方案 解决方案二:.netframework本身就提供命令行的编译器啊?!关键是靠不靠谱,而不是有没有.每一个人都能买到手术刀,但是买到手术刀的人未必就能随便给别人做外科手术.解决方案三:你搜索一下vbc.exe就行了.你可以让用户录入一段vb.net源代码,然后给他编译为dll.问题是,假设你需要动态链接一个dll,你一定要给他提供一个源代码编辑器吗?你让他自己按照