18.04.2015 Views

ArcGIS Engine Developer Guide

ArcGIS Engine Developer Guide

ArcGIS Engine Developer Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

}<br />

void TOCControlEvents::OnMouseUp(long button, long shift, long x, long y)<br />

{<br />

}<br />

void TOCControlEvents::OnMouseMove (long button, long shift, long x, long y)<br />

{<br />

}<br />

void TOCControlEvents::OnDoubleClick (long button, long shift, long x, long y)<br />

{<br />

}<br />

void TOCControlEvents::OnKeyDown (long keyCode, long shift)<br />

{<br />

}<br />

void TOCControlEvents::OnKeyUp (long keyCode, long shift)<br />

{<br />

}<br />

void TOCControlEvents::OnBeginLabelEdit (long x, long y,<br />

VARIANT_BOOL* CanEdit)<br />

{<br />

}<br />

void TOCControlEvents::OnEndLabelEdit (long x, long y, BSTR newLabel,<br />

VARIANT_BOOL* CanEdit)<br />

{<br />

if (CComBSTR("") == newLabel)<br />

*CanEdit = VARIANT_FALSE;<br />

}<br />

4. Now that the events have been implemented, the main application can listen<br />

for them. This is done the same way it was done for the PageLayoutControl’s<br />

events.<br />

a. First include TOCControlEvents.h in MapViewer.h.<br />

#include "PageLayoutControlEvents.h"<br />

#include "TOCControlEvents.h"<br />

b. Declare some global variables for the TOCControl events at the top of<br />

MapViewer.cpp.<br />

IEventListenerHelperPtr g_ipPageLayoutControlEventHelper;<br />

TOCControlEvents* g_tocEvents;<br />

IEventListenerHelperPtr g_ipTOCControlEventHelper;<br />

c. Next place the code to start listening for the TOCControlEvents after that for<br />

the PageLayoutControlEvents in MapViewer.cpp’s main.<br />

g_ipPageLayoutControlEventHelper->AdviseEvents(g_ipPageLayout, NULL);<br />

g_tocEvents = new TOCControlEvents();<br />

g_ipTOCControlEventHelper.CreateInstance(CLSID_TOCControlEventsListener);<br />

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

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

Saved successfully!

Ooh no, something went wrong!