chapter 12 making tools week 7 fall 2006. tools (events) besides click mousedown, mouseup, mousemove...

10
Chapter 12 Making Tools Week 7 Fall 2006

Upload: darcy-thornton

Post on 02-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Chapter 12Making Tools

Week 7

Fall 2006

Page 2: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Tools (events) besides Click• MouseDown, MouseUp, MouseMove• CursorID defines mouse appearance • Eabled to disable tool when necessary• MouseDown events(x/y are pixel locations, not

coordinates, you need to use IMxDocument.CuurentLocation to obtain them)Private Sub UIToolControl_MouseDown ( _

button As Long, shift As Long, x As Long, y As Long)

MsgBox “X: “ & x & “, Y: “ & y

End Sub

Button=1 – holding down the left button, =2, right button

Shift=0, not depressed, 1 : depressed

Page 3: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

IPoint• IMxDocument: CurrentLocaiton:

IPoint.– pMxDoc.CurrentLocation will return

an IPoint object, from which X and Y can be determined

• From IPoint, X,Y return current location:

• For example:Dim pMxDoc As IMxDocument

Set pMxDoc = ThisDocument

Dim pPoint As IPoint

Set pPoint = pMxDoc.CurrentLocation

MsgBox “Longitude: “ & pPoint.X & “, Latitude: “ & pPoint.Y

Page 4: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Status Bar

• IApplication.StatusBar returns an object of IStatusBar (for example:Dim pStatus As IStatusBar

Set pStatus = Application.StatusBar

• 4 panels of message bars, starting from 0.pStatus.Message(0) = “Lat: “ & pPoint.y…

pStatus.Message(1) = “Hello, this is message is from Adv GIS”

Page 5: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Drawing graphics• Graphics on map – follow map

units• Graphics on layout – follow

inches or cm• Graphics belong to abstract class

called Element (p. 212)• Map and PageLayout have

Element.• Create objects out of

GraphicElement coclass which include LineElement, TextElement and MarkerElement

• Element is associated with geometry objects – point, line and polygon

• Geometry is the starting point to create graphic elements

Page 6: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

MarkerElement• MarkerElement is the

point’s visual representation, required…. Otherwise, your point is just an abstract identity…

• Once created, MarkerElement must be associated with your existing point.

• QI is shown in these steps (next slide)

Page 7: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Code examples – create marker

• Fore example: create a marker to mark city location.– 1) Create a point

Dim pPoint As IPointSet pPoint = New PointpPoint.X = 0 ‘London, long and latpPoint.Y = 53.5

– 2) Create new marker elementDim pMarkerElement As IMarkerElementSet pMarkerElement = New MarkerElement

- 3) Associate the point with the marker elementDim pElement As IElement ‘Switch interfaces to IElement from

IMarkerElementSet pElement = pMarkerElementpElement.Geometry = pPoint

Page 8: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

IContainer

- 4) Add to the IGraphicsContainerDim pMap As IMap ‘FocusMap return IMap, switch to

IGraphicsContainer

Set pMap = pMxDoc.FocusMap

Dim pGraphics As IGraphicsContainer

Set pGraphics = pMap- Always take 4 lines to get the interface you need. Two to

declare and set the interface you don’t need and two more to declare and set the interface variable that you want. For a shortcut example, see next slide

Page 9: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

To save two steps

• If you don’t need IMap object, then simply use pMxDoc.FocusMap to get IMap object, instead of declare one.Dim pGraphics As IGraphicsContainer

Set pGraphics = pMxDoc.FocusMap

• Next, add graphics into graphicscontainerpGraphics.AddElement pElement, 0

Page 10: Chapter 12 Making Tools Week 7 Fall 2006. Tools (events) besides Click MouseDown, MouseUp, MouseMove CursorID defines mouse appearance Eabled to disable

Partial Refresh

• pActiveView.PartialRefresh _ esriViewGraphics, pElement, Nothing

Which caches are refreshedWhich layers/elements are refreshedWhich parts of the screen are refreshed (envelope)

Caches – screen capture of active view area