Dim curIcon As System.Object = ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromIcon(myIcon) appCursor.SetCursor(curIcon)
Dim m_Cursor As New System.Windows.Forms.Cursor(Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName.Name & ".Marker24b.cur")) If Not m_Cursor Is Nothing Then intptrCursor = m_Cursor.Handle System.Windows.Forms.Application.DoEvents() End If
Public Overloads ReadOnly Property cursor() As Integer Get Return intptrCursor.ToInt32() End Get End Property
Solved! Go to Solution.
Public Class LocationButton Inherits ESRI.ArcGIS.Desktop.AddIns.Tool ???.. Private objMarker As System.IntPtr = Nothing Private objMarkerAdd As System.IntPtr = Nothing
objMarker = (New System.Drawing.Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName.Name & ".Marker32.png"))).GetHicon() objMarkerAdd = (New System.Drawing.Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName.Name & ".MarkerAdd32.png"))).GetHicon()
Dim objThisCode as System.Reflection.Assembly = Assembly.GetExecutingAssembly() Dim strResourceNamespace as String = objThisCode.GetName.Name Dim streamMarkerPNG as System.IO.Stream = objThisCode.GetManifestResourceStream(strResourceNamespace & ".Marker32.png") Dim streamMarkerAddPNG as System.IO.Stream = objThisCode.GetManifestResourceStream(strResourceNamespace & ".MarkerAdd32.png") Dim bmpMarker as System.Drawing.Bitmap = New System.Drawing.Bitmap(streamMarkerPNG) Dim bmpMarkerAdd as System.Drawing.Bitmap = New System.Drawing.Bitmap(streamMarkerAddPNG) objMarker = bmpMarker.GetHicon() objMarkerAdd = bmpMarkerAdd.GetHicon()
Protected Overrides Sub OnActivate() preUseSelectedTool = My.ArcMap.Application.CurrentTool() My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" MyBase.OnActivate() MyBase.CursorHandle = objMarker End Sub Protected Overrides Sub OnKeyDown(ByVal arg As ESRI.ArcGIS.Desktop.AddIns.Tool.KeyEventArgs) If arg.Control Then MyBase.CursorHandle = objMarkerAdd My.ArcMap.Application.StatusBar.Message(0) = "Fix the focal point for the report" Else MyBase.CursorHandle = objMarker My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" End If MyBase.OnKeyDown(arg) End Sub Protected Overrides Sub OnKeyUp(ByVal arg As ESRI.ArcGIS.Desktop.AddIns.Tool.KeyEventArgs) If arg.Control Then MyBase.CursorHandle = objMarkerAdd My.ArcMap.Application.StatusBar.Message(0) = "Fix the focal point for the report" Else MyBase.CursorHandle = objMarker My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" End If MyBase.OnKeyUp(arg) End Sub Protected Overrides Sub Dispose(ByVal disposing As Boolean) DestroyIcon(objMarker) DestroyIcon(objMarkerAdd) MyBase.Dispose(disposing) End Sub
<System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint:="DestroyIcon")> _ Public Shared Function DestroyIcon(<System.Runtime.InteropServices.InAttribute()> ByVal hIcon As System.IntPtr) As <System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)> Boolean End Function
Public Class LocationButton Inherits ESRI.ArcGIS.Desktop.AddIns.Tool ???.. Private objMarker As System.IntPtr = Nothing Private objMarkerAdd As System.IntPtr = Nothing
objMarker = (New System.Drawing.Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName.Name & ".Marker32.png"))).GetHicon() objMarkerAdd = (New System.Drawing.Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName.Name & ".MarkerAdd32.png"))).GetHicon()
Dim objThisCode as System.Reflection.Assembly = Assembly.GetExecutingAssembly() Dim strResourceNamespace as String = objThisCode.GetName.Name Dim streamMarkerPNG as System.IO.Stream = objThisCode.GetManifestResourceStream(strResourceNamespace & ".Marker32.png") Dim streamMarkerAddPNG as System.IO.Stream = objThisCode.GetManifestResourceStream(strResourceNamespace & ".MarkerAdd32.png") Dim bmpMarker as System.Drawing.Bitmap = New System.Drawing.Bitmap(streamMarkerPNG) Dim bmpMarkerAdd as System.Drawing.Bitmap = New System.Drawing.Bitmap(streamMarkerAddPNG) objMarker = bmpMarker.GetHicon() objMarkerAdd = bmpMarkerAdd.GetHicon()
Protected Overrides Sub OnActivate() preUseSelectedTool = My.ArcMap.Application.CurrentTool() My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" MyBase.OnActivate() MyBase.CursorHandle = objMarker End Sub Protected Overrides Sub OnKeyDown(ByVal arg As ESRI.ArcGIS.Desktop.AddIns.Tool.KeyEventArgs) If arg.Control Then MyBase.CursorHandle = objMarkerAdd My.ArcMap.Application.StatusBar.Message(0) = "Fix the focal point for the report" Else MyBase.CursorHandle = objMarker My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" End If MyBase.OnKeyDown(arg) End Sub Protected Overrides Sub OnKeyUp(ByVal arg As ESRI.ArcGIS.Desktop.AddIns.Tool.KeyEventArgs) If arg.Control Then MyBase.CursorHandle = objMarkerAdd My.ArcMap.Application.StatusBar.Message(0) = "Fix the focal point for the report" Else MyBase.CursorHandle = objMarker My.ArcMap.Application.StatusBar.Message(0) = "Position the focal point for the report" End If MyBase.OnKeyUp(arg) End Sub Protected Overrides Sub Dispose(ByVal disposing As Boolean) DestroyIcon(objMarker) DestroyIcon(objMarkerAdd) MyBase.Dispose(disposing) End Sub
<System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint:="DestroyIcon")> _ Public Shared Function DestroyIcon(<System.Runtime.InteropServices.InAttribute()> ByVal hIcon As System.IntPtr) As <System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)> Boolean End Function