Provides access to events that occur in ArcMap.
Product Availability
When To Use
Use the IDocumentEventsDisp interface to perform some action when the ArcMap document events occur.
Members
Description | ||
---|---|---|
ActiveViewChanged | Fired when the active view has changed. | |
BeforeCloseDocument | Fired before a document is closed. Return True to abort the close process. | |
CloseDocument | Fired when a document is closed. | |
MapsChanged | Fired when a change is made to the map collection. | |
NewDocument | Fired when a new document is created. | |
OnContextMenu | Indicates if a context menu should be displayed at the given xy location. Return true if handled. | |
OpenDocument | Fired when a document is opened. | |
VBAReset | Fired when VBA is reset. |
CoClasses that implement IDocumentEventsDisp
CoClasses and Classes | Description |
---|---|
MxDocument | ESRI Mx Document. |
Remarks
When you are working in VBA, the IDocumentEventsDisp interface is automatically exposed for you. There is a MxDocument object defined in the ThisDocument class module. Select that object in the Object Box on the ThisDocument code window and then you can choose any of its events by clicking in the Procedure/Method Box on the ThisDocument code window. This stubs out the event procedures and you can write your code here.
In ArcMap there can be up to three VBA projects (Project, TemplateProject, and Normal) loaded and each one has a ThisDocument class module. You can write code for each document event in each ThisDocument code window. It is important to know the order in which the document events for each VBA project get fired. For example, when the NewDocument event occurs, the code in the MxDocument_NewDocument function in Project.ThisDocument executes first, then in TemplateProject.ThisDocument, and finally in Normal.ThisDocument.
If an event function in Project.ThisDocument returns True, then the code for this event in TemplateProject.ThisDocument and Normal.ThisDocument does not get executed. This provides a mechanism for a document to override any code that might be in the base template or the Normal template.