ArcEngine中的ICommand接口和ITool接口
来源:互联网 发布:weui 开发案例 源码 编辑:程序博客网 时间:2024/06/06 01:01
一、ICommand接口
ICommand接口为一个命令型接口,特点是当“命令按钮”按下时,会直接执行一段已经编写好的代码而无需外界交互,过程类似“宏”操作。
主要函数以及含义如下:
#region ICommand /// <summary> /// 命令按钮的图标(获取程序集文件中一个按钮图标文件的资源号) /// </summary> public int Bitmap { get; } /// <summary> /// 命令按钮的文字 /// </summary> public string Caption { get; } /// <summary> /// 命令按钮所属类别 /// </summary> public string Category { get; } /// <summary> /// 命令按钮是否被选择 /// </summary> public bool Checked { get; } /// <summary> /// 命令按钮是否可用 /// </summary> public bool Enabled { get; } /// <summary> /// 快捷帮助ID /// </summary> public int HelpContextID { get; } /// <summary> /// 帮助文件路径 /// </summary> public string HelpFile { get; } /// <summary> /// 鼠标移动到按钮上是时状态栏出现的文字 /// </summary> public string Message { get; } /// <summary> /// 按钮名称 /// </summary> public string Name { get; } /// <summary> /// 按钮点击时触发的方法 /// </summary> public void OnClick() { } /// <summary> /// 按钮产生时触发的方法 /// </summary> /// <param name="Hook"></param> public void OnCreate(object Hook) { } /// <summary> /// 鼠标移动到按钮上时弹出的文字 /// </summary> public string Tooltip { get; } #endregion
二、ITool接口
实现了ITool接口的插件对象在UI层上表现为一个工具按钮,工具按钮与命令按钮相似,其区别是前者点击后是开启一个交互过程而后者直接开始执行功能。
ArcMap中的“地图放大”工具就是一个Tool,按下该工具后,用户需要在地图上点击或拖放鼠标以显示更小范围的地图视图。
ArcMap中要产生一个Tool对象需要同时实现ICommand和ITool两个接口,其中ICommand定义启动Tool交互过程的方法,ITool接口则定义人机交互操作时需要的所有方法。
主要函数及其含义如下:
#region ITool /// <summary> /// 鼠标在地图上的样式 /// </summary> public int Cursor { get; } /// <summary> /// Tool的激活状态设置 /// </summary> /// <returns></returns> public bool Deactivate() { } /// <summary> /// 鼠标点击右键弹出快捷菜单时触发的事件 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> public bool OnContextMenu(int x, int y) { } /// <summary> /// 键盘某个按键点击时触发的事件 /// </summary> /// <param name="keyCode"></param> /// <param name="shift"></param> public void OnKeyDown(int keyCode, int shift) { } /// <summary> /// 键盘某个按键点击后弹起时触发的事件 /// </summary> /// <param name="keyCode"></param> /// <param name="shift"></param> public void OnKeyUp(int keyCode, int shift) { } /// <summary> /// 鼠标点击地图时触发的事件 /// </summary> /// <param name="button"></param> /// <param name="shift"></param> /// <param name="x"></param> /// <param name="y"></param> public void OnMouseDown(int button, int shift, int x, int y) { } /// <summary> /// 鼠标在地图上移动时触发的事件 /// </summary> /// <param name="button"></param> /// <param name="shift"></param> /// <param name="x"></param> /// <param name="y"></param> public void OnMouseMove(int button, int shift, int x, int y) { } /// <summary> /// 鼠标双击地图时触发的事件 /// </summary> public void OnDblClick() { } /// <summary> /// 鼠标在地图上弹起时触发的事件 /// </summary> /// <param name="button"></param> /// <param name="shift"></param> /// <param name="x"></param> /// <param name="y"></param> public void OnMouseUp(int button, int shift, int x, int y) { } /// <summary> /// 地图刷新时触发的事件 /// </summary> /// <param name="hdc"></param> public void Refresh(int hdc) { } #endregion
在ArcGIS Engine中如果把ICommand接口和ITool接口混合为一个接口也是合适的,这样设计对插件的产生没有影响。
阅读全文
0 0
- ArcEngine中的ICommand接口和ITool接口
- ArcEngine中的ICommand和ITool
- ArcEngine中的ICommand和ITool
- ICommand接口
- ICommand接口详解
- ArcEngine ICoommand和ITool 的区别
- arcengine Icommand
- WPF 中的Command, 接口System.Windows.Input.ICommand
- WPF-MVVM-ICommand接口实现
- WPF进阶之接口:INotifyPropertyChanged,ICommand
- MVVM设计模式基础知识--ICommand接口
- WPF进阶之接口:INotifyPropertyChanged,ICommand
- WPF的ICommand接口的简单实现
- 如何引用Icommand并实现接口
- ArcEngine ICommand控件
- ArcEngine拓扑常用接口
- ArcEngine拓扑常用接口
- Arcengine中关于符号相关类和接口的说明
- eclipse快捷键Ctrl+Shift+i获取调试过程中方法返回值失效
- 83、java的IO操作-读写文件
- [绍棠_Swift] Swift排序方法汇总
- QtCreator调试传入运行参数-调试文件打开操作
- AOS中Excel文件导入
- ArcEngine中的ICommand接口和ITool接口
- java开发笔记
- awk指令使用详解
- 2.9 Linux tty终端
- JavaScript正则表达式之最简得到字符串
- SQL SERVER还原数据库时"试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足)"错误处理
- Android 谷歌输入法安装包
- 6种数据的保存
- innobackupex安装 详解