描述:
最近本人刚刚用MapInfo做GIS项目,使着还行,但有些地方也不免产生好奇,比如一个控件是如何做到可以导出一堆的类的.
CMapX m_ctrlMapX; // 这是MapInfo的一个ActiveX控件对象
CMapXLayers layers; // 这是地图层集合
CMapXLayer layer; // 这是地图层对象
CMapXPoints points; // 这是点的结合
CMapXPoint point; // 这是点
points = m_ctrlMapX.GetLayers().Item("Xl_bbj").AllFeatures().Item(1).GetParts().Item(1);
如上所示一个ActiveX控件里如何让它可以做到访问其它如上所示通过Item方法调用其包含的对象的;此ActiveX控件导入有一堆的CMapXLayers,CMapXLayer,CMapXPoints 等象这样的类(如下代码),这是如何做到的呢.望兄弟们勿吝赐教,不胜感激!
class CMapXLayers : public COleDispatchDriver
{
public:
CMapXLayers() {} // Calls COleDispatchDriver default constructor
CMapXLayers(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
CMapXLayers(const CMapXLayers& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
CMapXLayer operator[](long Index) { return Item(Index); }
CMapXLayer operator[](LPCTSTR Index) { return Item(Index); }
// Attributes
public:
LPENUMVARIANT GetEnumerator();
long GetCount();
.........
}