18.04.2015 Views

ArcGIS Engine Developer Guide

ArcGIS Engine Developer Guide

ArcGIS Engine Developer Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

BUILDING APPLICATIONS WITH C++ AND CONTROL WIDGETS<br />

{<br />

}<br />

void MapControlEvents::OnViewRefreshed(VARIANT ActiveView, long viewDrawPhase,<br />

VARIANT layerOrElement,<br />

VARIANT envelope)<br />

{<br />

}<br />

14. These events need to be listened for as well.<br />

a. First, include the necessary header file in MapViewer.h.<br />

#include "TransformEvents.h"<br />

#include "MapControlEvents.h"<br />

b. Listen for the events from MapViewer.cpp in the same way you did for the<br />

other controls.<br />

IEventListenerHelperPtr g_ipTransEventHelper;<br />

MapControlEvents* g_mapEvents;<br />

IEventListenerHelperPtr g_ipMapControlEvent2Helper;<br />

…<br />

int main (int argc, char* argv[])<br />

{<br />

…<br />

g_ipTransEventHelper->Startup(<br />

static_cast (g_transEvents));<br />

g_mapEvents = new MapControlEvents();<br />

g_ipMapControlEvent2Helper.CreateInstance(<br />

CLSID_MapControlEvents2Listener);<br />

g_ipMapControlEvent2Helper->Startup(<br />

static_cast (g_mapEvents));<br />

g_ipMapControlEvent2Helper->AdviseEvents(g_ipMapControl, NULL);<br />

…<br />

}<br />

15. Clean up the map’s events in CloseAppCallback as you did for the other events.<br />

// End event listening<br />

g_ipPageLayoutControlEventHelper->UnadviseEvents();<br />

g_ipPageLayoutControlEventHelper->Shutdown();<br />

g_ipPageLayoutControlEventHelper = 0;<br />

delete g_pageLayoutEvents;<br />

g_ipTOCControlEventHelper->UnadviseEvents();<br />

g_ipTOCControlEventHelper->Shutdown();<br />

g_ipTOCControlEventHelper = 0;<br />

delete g_tocEvents;<br />

g_ipTransEventHelper->UnadviseEvents();<br />

g_ipTransEventHelper->Shutdown();<br />

Chapter 6 • <strong>Developer</strong> scenarios • 391

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!