arcgis engine中如何定义用于axToolbarControl1.AddItem中添加的自定义工具对象
时间: 2023-12-03 09:46:44 浏览: 131
在 ArcGIS Engine 中定义用于 `axToolbarControl1.AddItem` 中添加的自定义工具对象,需要实现以下步骤:
1. 创建一个类,实现 ITool 接口。
```csharp
public class MyCustomTool : ESRI.ArcGIS.Framework.ITool {
// ...
}
```
2. 实现 ITool 接口中的方法,包括 OnCreate、OnClick、OnMouseDown 等事件处理方法。
```csharp
public void OnCreate(object hook){
// ...
}
public void OnClick(){
// ...
}
public void OnMouseDown(int Button, int Shift, int X, int Y){
// ...
}
```
3. 在 OnCreate 方法中创建工具栏按钮的图标,并将其赋值给 Bitmap 以供之后使用。
```csharp
public void OnCreate(object hook){
// ...
bitmap = new Bitmap(GetType().Assembly.GetManifestResourceStream("MyNamespace.MyCustomTool.png"));
}
```
4. 在 ITool 接口中实现 Name、Caption、Category、Bitmap、Enabled 属性,以及 Cursor 属性和 ToolTip 属性。
```csharp
public string Name{
get { return "MyCustomTool"; }
}
public string Caption{
get { return "My Custom Tool"; }
}
public string Category{
get { return "My Custom Category"; }
}
public Bitmap Bitmap{
get { return bitmap; }
}
public bool Enabled{
get { return true; }
}
public int Cursor{
get { return -1; }
}
public string ToolTip{
get { return "My Custom Tool"; }
}
```
5. 在窗体中的 `axToolbarControl1_OnCreate` 事件中添加自定义工具对象。
```csharp
private void axToolbarControl1_OnCreate(object sender, IToolbarControlEvents_OnCreateEvent e){
// ...
MyCustomTool myTool = new MyCustomTool();
axToolbarControl1.AddItem(myTool, -1, -1, false, -1, esriCommandStyles.esriCommandStyleIconAndText);
}
```
这样就可以在工具栏中添加自定义工具对象了。