ÔÚ³öÏֵĶԻ°¿òÀïÑ¡ÔñESRI MapControl£¬È·¶¨¡£

½ÓÏÂÀ´²é¿´ÐÞ¸ÄESRI MapControlµÄÊôÐÔ£¨ÈçÏÂͼ£©£¬Ñ¡ÔñControlÒ³£¬ÔÚMap Document£º´¦Ñ¡ÔñÒ»¸ömxd/mxt/pmfÎļþ£¬¼´Òª¼ÓÔØµÄµØÍ¼Îĵµ¡£

»òÕßÑ¡ÔñMapÒ³£¨ÈçÏÂͼ£º£©£¬ÔÚÓұߵÄlistÖÐÌí¼Óͼ²ãÒ²¿É¡£

±£´æÐ޸쬱àÒë³ÌÐò¡£ÔËÐоͿÉÒÔ¿´µ½Ò»¸ö¼òµ¥ÏÔʾµØÍ¼µÄ³ÌÐòÁË£¨ÈçÏÂͼ£©¡£

Èý¡¢±¾ÕÂС½á

ÉÏÃæÖ»ÊÇÒ»¸ö¼òµ¥ÊµÀý£¬ÀïÃæÓÐÐí¶à¹¦Äܶ¼Ã»ÓУ¬µ±Äã°Ñ³ÌÐò´°¿Ú×î´ó»¯Ê±Äã»á·¢ÏÖ£¬µØÍ¼´°¿ÚûÓÐËæ´°¿Ú·Å´ó¡£ÔÚÏÂÒ»½ÚÎÒÃǽ«ÍêÉÆÕâ¸ö¹¦ÄÜ£¬²¢Ìí¼ÓµØÍ¼ÂþÓεÄһЩ¹¦ÄÜ¡£

5 AO¿ª·¢±Ê¼Ç(ʵսƪ)£­ÓÃVC+AO¿ª·¢¶ÀÁ¢µÄÓ¦ÓóÌ

Ðò(2)

×÷ÕߣºSnoopy ÎÄÕÂÀ´Ô´£ºÖйú3SÍøÕ¾£¨httpwww.863s.com£© µã»÷Êý£º2852 ¸üÐÂʱ¼ä£º2006-12-11

ÔÚÉÏÒ»½ÚÖÐÎÒÃÇʵÏÖÁËÒ»¸ö¼òµ¥µÄÏÔʾµØÍ¼µÄ³ÌÐò¡£ÏÂÃæÎÒÃÇÔÚËüµÄ»ù´¡ÉÏÍêÉÆºÍÌí¼ÓÒÔÏÂÐµĹ¦ÄÜ£º

1£®µ±¿ò¼Ü´°¿Ú´óС¸ü¸Äʱ¸Ä±äµØÍ¼¿Ø¼þ´°¿ÚÊ¹Ö®Ëæ¿ò¼Ü´°¿ÚÔö´ó¡£ 2£®Ôö¼ÓµØÍ¼ÂþÓι¦ÄÜ£ºÒƶ¯¡¢·Å´ó¡¢ËõС¡¢ÏÔʾȫͼ Ò»¡¢¸ü¸ÄÏîÄ¿ÅäÖá¢Ìí¼ÓÒýÈë¿â´úÂë

ÔÚ±¾½ÚÖÐÎÒÃǽ«Ê¹ÓÃAOÌṩµÄһЩ½Ó¿Ú£¬ËùÒÔÐèÒª¸ü¸ÄÏîÄ¿ÅäÖã¬ÒÔ¼°Ìí¼ÓÒýÓÃAO¿âµÄ´úÂë¡£

Ê×ÏÈ´ò¿ªÉÏÒ»½ÚËù½¨ÏîÄ¿¡£Ñ¡Ôñ²Ëµ¥Tools->Options->DirectoriesÒ³ÔÚInclude filesÀïÌí¼ÓÁ½¸ö·¾¶£¨Èç¹ûÄãµÄArcGISµÄ°²×°Ä¿Â¼ÔÚÆäËüÅÌ£¬Ðè×öÏàÓ¦¸Ä¶¯£©£º

C:\\PROGRAM FILES\\ARCGIS\\COM C:\\PROGRAM FILES\\ARCGIS\\BIN ÔÚÏîÄ¿µÄStdAfx.hÖÐÌí¼ÓÈçÏ´úÂ룺 // AOÒýÈë¿â

#pragma warning(push) #pragma warning(disable: 4192) #pragma warning(disable: 4146)

#import \ raw_interfaces_only

raw_native_types

no_namespace

named_guids exclude(\, \,\, \)

#import \ raw_interfaces_only, raw_native_types, no_namespace, named_guids exclude(\)

#import \ raw_interfaces_only named_guids

#import \ raw_interfaces_only named_guids

#import \ raw_interfaces_only raw_native_types no_namespace named_guids

#import \ raw_interfaces_only, named_guids

#import \ raw_interfaces_only

no_namespace named_guids exclude(\, \)

#import \ raw_interfaces_only

no_namespace named_guids exclude(\, \)

#import \ raw_interfaces_only raw_native_types no_namespace

raw_native_types raw_native_types

raw_native_types,

no_namespace,

raw_native_types

no_namespace

raw_native_types

no_namespace

named_guids

#import \ raw_interfaces_only named_guids

#import \ raw_interfaces_only named_guids

#import \ raw_interfaces_only no_namespace named_guids

#import \ raw_interfaces_only raw_native_types no_namespace named_guids

#pragma warning(pop)

¶þ¡¢Ìí¼ÓµØÍ¼ä¯ÀÀ¹¦ÄÜ£¬ÍêÉÆµØÍ¼´°¿ÚËõ·Å 1¡¢Ê¹MapControlËæ´°¿Ú·Å´ó

Ê×ÏÈΪCAOExStep1ViewÌí¼ÓÒ»¸ö±£»¤ÀàÐ͵ijÉÔ±±äÁ¿£º IMapControl3Ptr m_ipMapControl; // µØÍ¼¿Ø¼þ

¸Ã±äÁ¿±£´æÖ¸ÏòMapContrlµÄ½Ó¿ÚÖ¸Õ롣ȻºóÔÚÀàCAOExStep1ViewµÄ³ÉÔ±º¯ÊýOnInitialUpdateÌí¼ÓÈçÏ´úÂë³õʼ»¯Ëü£¨ºìÉ«²¿·Ö£©£º

void CAOExStep1View::OnInitialUpdate() {

¡­// ´Ë´¦Ê¡ÂÔÆäËü´úÂë // »ñÈ¡MapControlÖ¸Õë

m_ipMapControl = GetDlgItem(IDC_MAPCONTROL1)->GetControlUnknown(); }

ΪÀàCAOExStep1ViewÌí¼Ó´°¿Ú¸Ä±ä´óСʼþº¯Êý£¬²¢ÔÚÀïÃæÌí¼ÓÈçÏ´úÂ루ºìÉ«²¿·Ö£©£º

void CAOExStep1View::OnSize(UINT nType, int cx, int cy) {

CFormView::OnSize(nType, cx, cy);

// View´°¿Ú¸Ä±ä´óСʱ¸Ä±äMapControl´óС if(m_ipMapControl!=NULL) { CRect rc; GetClientRect(rc);

GetDlgItem(IDC_MAPCONTROL1)->MoveWindow(rc); } }

¾­¹ýÉÏÃæµÄÐ޸ģ¬ÏÖÔÚÖØÐ±àÒë³ÌÐò£¬°Ñ´°¿Ú×î´ó»¯£¬Äã»á¿´µ½µØÍ¼´°¿ÚËæÖ®·Å´ó¡£

raw_native_types

raw_native_types

no_namespace

raw_native_types

no_namespace

2¡¢½ÓÏÂÀ´ÎÒÃÇÀ´Ìí¼ÓµØÍ¼ÂþÓι¦ÄÜ

Ê×ÏȰÑÏîĿĬÈϵŤ¾ßÀ¸°´Å¥È«²¿É¾³ýÖ»ÁôϹØÓÚ°´Å¥¡£È»ºóÌí¼Ó5¸ö°´Å¥£¬°´Å¥IDºÍÌáʾÎı¾ÈçÏ£¬°´Å¥µÄͼ±ê¿ÉÒÔʹÓÃArcGISµÄÏàÓ¦¹¦ÄܵÄͼ±ê£¨ArcGISµÄһЩͼ±ê±£´æÔÚ°´ÕÕĿ¼µÄBin\\Icons\\ÏÂÃæ£¬ÊÇһϵÁÐbmpÎļþ£©¡£

ID_MAP_ARROW \Ñ¡Ôñ״̬\\nÑ¡Ôñ״̬\ID_MAP_PAN \µØÍ¼Æ½ÒÆ\\nµØÍ¼Æ½ÒÆ\ID_MAP_ZOOMIN\µØÍ¼·Å´ó\\nµØÍ¼·Å´ó\ID_MAP_ZOOMOUT \µØÍ¼ËõС\\nµØÍ¼ËõС\ID_MAP_FULLEXTENT \ÏÔʾȫͼ\\nÏÔʾȫͼ\

ΪÁË´¦ÀíÊó±êʼþÎÒÃÇÐèҪΪMapControlÌí¼ÓÒ»¸öonMouseDownʼþº¯Êý£¬ÔÚÀàCAOExStep1ViewÀïÌí¼ÓÉÏÃæÌí¼ÓµÄ¹¤¾ßÀ¸°´Å¥µÄÏìÓ¦º¯Êý£¬ÁíÍâÎÒÃÇ»¹ÐèÒªÔÚÀàCAOExStep1ViewÍ·ÎļþÀïÌí¼ÓÒ»¸ö±êÖ¾µ±Ç°Êó±ê²Ù×÷״̬µÄ³ÉÔ±±äÁ¿£º

esriARTool m_ARTool; // Êó±êµ±Ç°×´Ì¬

ÔÚ¹¤¾ßÀ¸ÏìÓ¦º¯ÊýÖÐÌí¼ÓÈçÏ´úÂ루ºìÉ«²¿·Ö£©£º // Ñ¡Ôñ״̬

void CAOExStep1View::OnMapArrow() {

m_ARTool = esriARToolNoneSelected;

m_ipMapControl->put_MousePointer(esriPointerDefault); }

// µØÍ¼Æ½ÒÆ

void CAOExStep1View::OnMapPan() {

m_ARTool = esriARToolMapPan;

m_ipMapControl->put_MousePointer(esriPointerPan); }

// µØÍ¼·Å´ó

void CAOExStep1View::OnMapZoomin() {

m_ARTool = esriARToolMapZoomIn;

m_ipMapControl->put_MousePointer(esriPointerZoomIn); }

// µØÍ¼ËõС

void CAOExStep1View::OnMapZoomout() {

m_ARTool = esriARToolMapZoomOut;