- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《ArcGIS Engine+C#实例开发教程》 By Daniel
实习九:ArcGIS Engine 实现自定义命令和工具
【思路】[1]实现ICommand 接口:必须重写OnCreate,OnClick 方法.
[2]实现ITool 接口:重写OnCreate,OnMouseDown,OnMouseMove,OnMouseUp 方法.
[3]继承BaseCommand,BaseTool 类:这两个基类提供了ICommand 或ITool 接口所有
方法的通用实现代码,根据需要重写其中的方法。BaseCommand 的OnCreate 方法必须重写.
属性根据自己需要重新赋值.
1、打开程序集——打开实习2-8 所建项目;
1.1 在项目中选择添加新项cleartool.cs 类,选择ArcGIS 类别下的模板Base Command 或
Base Tool ,如图:
1.2 点击确定之后会弹出一个对话框,让
你选择要创建的Command 适用的ArcGIS 组
件,选择 MapControl or PageLayoutControl
Command 则可使Command 用在普通的平面
地图控件上.
最终生成的代码文件中,创建了一个类,继承自BaseCommand ,提供了可供COM 识别
的一系列标签,实现了BaseCommand 的必要方法OnCreate 和OnClick 。其中重要的部分
说明如下:
[Guid(ef86c813-d6ef-4212-adea-8ff81031ac5c)] :使这个全局ID 使此组件可以注册在你
的电脑上;
[ProgId(DevGISForms.cleartool)] :提供了这个COM 组件的ProgId ,这成为调用AddItem
—1 / 5—
《ArcGIS Engine+C#实例开发教程》 By Daniel
时传入的参数.
public sealed class cleartool : BaseCommand:指定AddDateTool 类继承自ESRI BaseTool
抽象类;密封(sealed )类修饰:说明一个类不能被继承。此类的设计是为了限制其他类从
该类继承.
base.m_name:这个名称成为你在查找Command 时进行比较的字符串名称。
OnCreate :方法中传递的参数hook 成为绑定到这个Command 控件的交互对象,被保存
在一个 IHookHelper 成员变量中,通过该成员的 Hook 属性即可获得对交互对象(往往是
MapControl 的弱引用).
同时被创建的还有一个bmp 图片,是被添加到工具栏时显示的按钮图片,默认是一个傻
傻的兔子 .
2 、进行重写代码,实现控制工具栏,清除活动工具.
2.1 定义ToolbarControl,向cleartool 类的构造函数中增加下列代码:
//:是继承符号说明继承BaseCommand ;sealed 说明受保护,不受其他类继承
public sealed class cleartool : BaseCommand
{
#region COM Registration Function(s)
private IHookHelper m_hookHelper;
//定义ToolbarControl
IToolbarControl pToolbarControl;
public cleartool()
{
//
// TODO: Define values for the public properties
//
base.m_category = 自定义命令; //localizable text
您可能关注的文档
最近下载
- 浅析企业员工流失的原因及对策——以福州永辉超市为例.docx VIP
- XK3190-C8技术手册.pdf VIP
- 广州市历年中考(2025-2026)化学试题(含答案).doc VIP
- 办公设备维护方案.docx VIP
- 浙江省杭州市学军中学四校区2022-2023学年高二上学期期末物理试题(含答案解析).docx
- 《金瓶梅》中潘金莲“绣鞋”之物象探析.doc VIP
- 14s501-1P35-37页球磨铸铁踏步施工检验标准.pdf VIP
- 2026年上海市松江区中考一模化学试卷含详解.docx VIP
- 2025研读新课标,探寻数学教育新方向——读《小学数学新课程标准》有感.docx
- 如何通过手机号码查询行动轨迹.docx VIP
原创力文档


文档评论(0)