About the Move a graphic along a path in ArcMap Sample
[C#]
MapGraphicTrackPropPage.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.Animation;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.ADF.CATIDs;
namespace AnimationDeveloperSamples
{
[Guid("EC7FC44A-3516-4872-8F93-944259B34662")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("CustomMapAnimation1.MapGraphicTrackPropPage")]
public class MapGraphicTrackPropPage : IComPropertyPage
{
#region COM Registration Function(s)
[ComRegisterFunction()]
[ComVisible(false)]
static void RegisterFunction(Type registerType)
{
// Required for ArcGIS Component Category Registrar support
ArcGISCategoryRegistration(registerType);
//
// TODO: Add any COM registration code here
//
}
[ComUnregisterFunction()]
[ComVisible(false)]
static void UnregisterFunction(Type registerType)
{
// Required for ArcGIS Component Category Registrar support
ArcGISCategoryUnregistration(registerType);
//
// TODO: Add any COM unregistration code here
//
}
#region ArcGIS Component Category Registrar generated code
/// <summary>
/// Required method for ArcGIS Component Category registration -
/// Do not modify the contents of this method with the code editor.
/// </summary>
private static void ArcGISCategoryRegistration(Type registerType)
{
string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);
AGAnimationTrackPropertyPages.Register(regKey);
}
/// <summary>
/// Required method for ArcGIS Component Category unregistration -
/// Do not modify the contents of this method with the code editor.
/// </summary>
private static void ArcGISCategoryUnregistration(Type registerType)
{
string regKey = string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}", registerType.GUID);
AGAnimationTrackPropertyPages.Unregister(regKey);
}
#endregion
#endregion
IAGAnimationTrack targetTrack;
int priority;
IComPropertyPageSite pageSite;
frmPropertyPage propPage;
public MapGraphicTrackPropPage()
{
propPage = new frmPropertyPage();
priority = 0;
}
#region IComPropertyPage members
public int Activate()
{
return propPage.Handle.ToInt32();
}
public bool Applies(ISet Objects)
{
object obj;
IAGAnimationTrack track;
int count = Objects.Count;
Objects.Reset();
bool appl = false;
for (int i = 0; i < count; i++)
{
obj = Objects.Next();
track = (IAGAnimationTrack)obj;
if (track != null)
{
if (track.AnimationType.Name == "Map Graphic")
{
appl = true;
break;
}
}
}
return appl;
}
public void SetObjects(ISet Objects)
{
int count = Objects.Count;
Objects.Reset();
for (int i = 0; i < count; i++)
{
object obj = Objects.Next();
targetTrack = (IAGAnimationTrack)obj;
if (targetTrack != null)
{
break;
}
}
propPage.Init(targetTrack);
}
public void Apply()
{
IAGAnimationTrackExtensions trackExtensions = (IAGAnimationTrackExtensions)targetTrack;
IMapGraphicTrackExtension trackExtension;
if (trackExtensions.ExtensionCount == 0) //if there is no extension, add one
{
trackExtension = new MapGraphicTrackExtension();
trackExtensions.AddExtension(trackExtension);
}
else
{
trackExtension = (IMapGraphicTrackExtension)trackExtensions.get_Extension(0);
}
trackExtension.ShowTrace = propPage.CheckBoxShowTrace.Checked;
}
public void Cancel()
{
}
public void Deactivate()
{
targetTrack = null;
propPage.Dispose();
}
public int Height
{
get
{
return propPage.Height;
}
}
public int Width
{
get
{
return propPage.Width;
}
}
public int get_HelpContextID(int controlID)
{
return 0;
}
public string HelpFile
{
get
{
return "";
}
}
public void Hide()
{
propPage.Hide();
}
public bool IsPageDirty
{
get
{
return propPage.PageDirty;
}
}
public IComPropertyPageSite PageSite
{
set
{
pageSite = value;
}
}
public int Priority
{
get
{
return priority;
}
set
{
priority = value;
}
}
public void Show()
{
propPage.Visible = true;
}
public string Title
{
get
{
return propPage.Text;
}
set
{
propPage.Text = value;
}
}
#endregion
}
}
[Visual Basic .NET]
MapGraphicTrackPropPage.vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Imports ESRI.ArcGIS.Framework
Imports ESRI.ArcGIS.Animation
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.ADF.CATIDs
<Guid("EC7FC44A-3516-4872-8F93-944259B34662"), ClassInterface(ClassInterfaceType.None), ProgId("CustomMapAnimation1.MapGraphicTrackPropPage")> _
Public Class MapGraphicTrackPropPage : Implements IComPropertyPage
#Region "COM Registration Function(s)"
<ComRegisterFunction(), ComVisible(False)> _
Private Shared Sub RegisterFunction(ByVal registerType As Type)
' Required for ArcGIS Component Category Registrar support
ArcGISCategoryRegistration(registerType)
'
' TODO: Add any COM registration code here
'
End Sub
<ComUnregisterFunction(), ComVisible(False)> _
Private Shared Sub UnregisterFunction(ByVal registerType As Type)
' Required for ArcGIS Component Category Registrar support
ArcGISCategoryUnregistration(registerType)
'
' TODO: Add any COM unregistration code here
'
End Sub
#Region "ArcGIS Component Category Registrar generated code"
''' <summary>
''' Required method for ArcGIS Component Category registration -
''' Do not modify the contents of this method with the code editor.
''' </summary>
Private Shared Sub ArcGISCategoryRegistration(ByVal registerType As Type)
Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID)
AGAnimationTrackPropertyPages.Register(regKey)
End Sub
''' <summary>
''' Required method for ArcGIS Component Category unregistration -
''' Do not modify the contents of this method with the code editor.
''' </summary>
Private Shared Sub ArcGISCategoryUnregistration(ByVal registerType As Type)
Dim regKey As String = String.Format("HKEY_CLASSES_ROOT\CLSID\{{{0}}}", registerType.GUID)
AGAnimationTrackPropertyPages.Unregister(regKey)
End Sub
#End Region
#End Region
Private targetTrack As IAGAnimationTrack
Private priority_Renamed As Integer
Private pageSite_Renamed As IComPropertyPageSite
Private propPage As frmPropertyPage
Public Sub New()
propPage = New frmPropertyPage()
priority_Renamed = 0
End Sub
#Region "IComPropertyPage members"
Public Function Activate() As Integer Implements IComPropertyPage.Activate
Return propPage.Handle.ToInt32()
End Function
Public Function Applies(ByVal Objects As ISet) As Boolean Implements IComPropertyPage.Applies
Dim obj As Object
Dim track As IAGAnimationTrack
Dim count As Integer = Objects.Count
Objects.Reset()
Dim appl As Boolean = False
Dim i As Integer = 0
Do While i < count
obj = Objects.Next()
track = CType(obj, IAGAnimationTrack)
If Not track Is Nothing Then
If track.AnimationType.Name = "Map Graphic" Then
appl = True
Exit Do
End If
End If
i += 1
Loop
Return appl
End Function
Public Sub SetObjects(ByVal Objects As ISet) Implements IComPropertyPage.SetObjects
Dim count As Integer = Objects.Count
Objects.Reset()
Dim i As Integer = 0
Do While i < count
Dim obj As Object = Objects.Next()
targetTrack = CType(obj, IAGAnimationTrack)
If Not targetTrack Is Nothing Then
Exit Do
End If
i += 1
Loop
propPage.Init(targetTrack)
End Sub
Public Sub Apply() Implements IComPropertyPage.Apply
Dim trackExtensions As IAGAnimationTrackExtensions = CType(targetTrack, IAGAnimationTrackExtensions)
Dim trackExtension As IMapGraphicTrackExtension
If trackExtensions.ExtensionCount = 0 Then 'if there is no extension, add one
trackExtension = New MapGraphicTrackExtension()
trackExtensions.AddExtension(trackExtension)
Else
trackExtension = CType(trackExtensions.Extension(0), IMapGraphicTrackExtension)
End If
trackExtension.ShowTrace = propPage.CheckBoxShowTrace.Checked
End Sub
Public Sub Cancel() Implements IComPropertyPage.Cancel
End Sub
Public Sub Deactivate() Implements IComPropertyPage.Deactivate
targetTrack = Nothing
propPage.Dispose()
End Sub
Public ReadOnly Property Height() As Integer Implements IComPropertyPage.Height
Get
Return propPage.Height
End Get
End Property
Public ReadOnly Property Width() As Integer Implements IComPropertyPage.Width
Get
Return propPage.Width
End Get
End Property
Public ReadOnly Property HelpContextID(ByVal controlID As Integer) As Integer Implements IComPropertyPage.HelpContextID
Get
Return 0
End Get
End Property
Public ReadOnly Property HelpFile() As String Implements IComPropertyPage.HelpFile
Get
Return ""
End Get
End Property
Public Sub Hide() Implements IComPropertyPage.Hide
propPage.Hide()
End Sub
Public ReadOnly Property IsPageDirty() As Boolean Implements IComPropertyPage.IsPageDirty
Get
Return propPage.PageDirty
End Get
End Property
Public WriteOnly Property PageSite() As IComPropertyPageSite Implements IComPropertyPage.PageSite
Set(ByVal value As IComPropertyPageSite)
pageSite_Renamed = value
End Set
End Property
Public Property Priority() As Integer Implements IComPropertyPage.Priority
Get
Return priority_Renamed
End Get
Set(ByVal value As Integer)
priority_Renamed = value
End Set
End Property
Public Sub Show() Implements IComPropertyPage.Show
propPage.Visible = True
End Sub
Public Property Title() As String Implements IComPropertyPage.Title
Get
Return propPage.Text
End Get
Set(ByVal value As String)
propPage.Text = value
End Set
End Property
#End Region
End Class