CAE入门开发第四讲_第1页
CAE入门开发第四讲_第2页
CAE入门开发第四讲_第3页
CAE入门开发第四讲_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四讲 状态栏信息的添加与实现本讲我们将完成状态栏信息的添加与实现。应用程序的状态栏一般用来显示程序的当前状态,当前所使用的工具。GIS应用程序一般也在状态栏显示当前光标的坐标、比例尺等信息。学习完本讲内容,您将学会状态栏编程的基本方法,并且能够在我们的程序的状态栏中添加且显示以下信息:当前所用工具信息当前比例尺当前坐标1、添加状态栏项目在设计视图中,点击窗体中的状态栏,在其属性面板中找到“Items ”项,单击其右边的按钮,在下拉框中选择StatusLabel ”,单击添加按钮”,依次添加四个StatusLabel ,依次修改属性参数如下表所示:Name犀性Spring属性说明1Messag

2、eLabelFalse当前所用工具信息2BlankTrue3ScaleLabel比例尺False当前比例尺斗Coordin ate Labell当前False当前坐标设置好之后如下图所示Tips我们设计出的状态栏最终如下所示:就绪C Blank J比例尺当前坐标Spring属性表示可以按状态栏剩余空间自动伸缩。所以加入Biank项目只是为了占个位子,以达到 ScaleLabel和 CoordinateLabel项目右对齐而 MessageLabel项目左对齐的目 的。2、显示当前所用工具信息首先添加 axToolbarControll的OnMouseMove事件(相信大家看了以上的教程,已经知

3、 道怎么添加事件了吧,还不知道的建议再温习下前几讲的内容)。在其事件响应函数代码如下:privatevoidaxToolbarC on trol1_ OnM ouseMove(objectsen der,IToolbarCo ntrolEve nts_O nM ouseMoveEve nt e)/取得鼠标所在工具的索引号int in dex = axToolbarCo ntrol1.HitTest(e.x, e.y, false);if (in dex != -1)/取得鼠标所在工具的ToolbarItemIToolbarItem toolbarItem = axToolbarC on tro

4、l1.Getltem(i ndex);/设置状态栏信息MessageLabel.Text = toolbarItem.Comma nd.Message;elseMessageLabel.Text =就绪; 3、显示当前比例尺添加axMapControl1 的OnMouseMove 事件,其代码如下:privatevoidaxMapC on trol1_O nM ouseMove(objectsen der,IMapC on trolEve nts2_ OnM ouseMoveEve nt e)/显示当前比例尺ScaleLabel.Text =比例尺 1: + (long)this.axMapC

5、ontrol1.MapScale).ToString();4、显示当前坐标显示当 前坐标也是 axMapControll 的 OnMouseMove 事件中 响应,故只要在 axMapCo ntrol1_O nM ouseMove 函数中添加如下代码即可:/显示当前坐标CoordinateLabel.Text =当前坐标 X = + e.mapX.ToString() + Y = + e.mapY.ToStri ng() + + this.axM apCon trol1.M apUn its;按F5编译运行,可以看到,我们的程序已经能够正常工作了。但是细心的你可能会发现,当前坐标的后面的坐标单

6、位为esriUnknownUnits ”或esriMeters ”之类,即系统在正常单位的前面加上了“esri ”,追求完美的我们自然看得不舒服。那就进行简单的替换吧。首先定义个全局坐标单位变量sMap Un its,如下所示:private stri ng sMap Un its;再Form1_Load函数中进行初始化: sMap Un its = Unknown;添加axMapControl1 控件的 OnMapReplaced事件,在事件响应函数中进行坐标单位替换,代码如下:privatevoidaxMapC on trol1_ OnM apReplaced(objectsen der,

7、IMapCo ntrolEve nts2_ OnM apReplacedEve nt e)esriU nits mapUn its = axMapC on trol1.Map Un its;switch (map Un its)case esriU nits.esriCe ntimeters:sMapU nits = Cen timeters;break;case esriU ni ts.esriDecimalDegrees:sMap Un its = Decimal Degrees;break;case esriU ni ts.esriDecimeters:sMap Un its = Dec

8、imeters;break;case esriU nits.esriFeet:sMap Un its = Feet;break;case esriU nits.esri In ches:sMapU nits = In ches;break;case esriUnits.esriKilometers: sMapUnits = Kilometers; break;case esriUnits.esriMeters: sMapUnits = Meters;break;case esriUnits.esriMiles: sMapUnits = Miles;break;case esriUnits.esriMillimeters: sMapUnits = Millimeters; break;case esriUnits.esriNauticalMiles: sMapUnits = NauticalMiles; break;case esriUnits.esriPoints: sMapUnits = Points;break;case esriUnits.esriUnknownUnits: sMapUnits = Unknown;break;case esriUnit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论