⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapx.h

📁 代码名称:VC+MapX的gps系统代码 作者/收集者:jhqjhq 开发环境:VC + MapX 代码介绍: VC + MapX实现GPS监控的系统代码
💻 H
📖 第 1 页 / 共 5 页
字号:
	miSinusoidal = 16,
	miGall = 17,
	miNewZealandMapGrid = 18,
	miLambertConformalConicBelgium = 19,
	miStereographic = 20,
	miTransverseMercatorDenmarkS34J = 21,
	miTransverseMercatorDenmarkS34S = 22,
	miTransverseMercatorDenmarkS45B = 23,
	miTransverseMercatorFinland = 24,
	miSwissObliqueMercator = 25
};

enum SymbolTypeConstants
{
	miSymbolTypeTrueTypeFont = 0,
	miSymbolTypeBitmap = 1,
	miSymbolTypeVector = 2
};


enum IntersectionTestConstants
{
	miIntersectCentroidWithinFeature = 0,
	miIntersectFeature = 1,
	miIntersectEntirelyWithinFeature = 2
};

enum IntersectionPointConstants
{
	miIntersectCrossings = 9,
	miIntersectCommon = 10,
	miIntersectAll = 11
};

enum MousewheelSupportConstants
{
	miNoMousewheelSupport = 1,
	miMousewheelNoAutoScroll = 2,
	miFullMousewheelSupport = 3	
};

enum MapDrawConstants {
	miDrawBegin = 1,
	miDrawEnd = 2,
};

enum StyleUnitConstants
{
	miStyleUnitPixel = 0,
	miStyleUnitTenthsOfPoint = 1
};

enum ServerLayerOptions // bit mask for long, must be power of 2
{
	miLayerCacheOff = 1,  // default = Cache on
	miMBRSearchOff  = 2   // default = Search on
};

enum GraduationConstants
{
	miGraduateBySquareRoot = 0,
	miGraduateByConstant = 1,
	miGraduateByLogarithm = 2
};

enum ColorSpreadingMethodConstants
{
	miColorMethodRGB = 0,
	miColorMethodHSV = 1
};

enum ApplyAttributeConstants
{
	miApplyAttributeAll = 0,
	miApplyAttributeColor = 1,
	miApplyAttributeSize = 2
};

enum LayerBeginAccessConstants
{ 
	miAccessRead= 0,
	miAccessReadWrite = 1,
	miAccessTransaction = 2
};

enum LayerEndAccessConstants
{
	miAccessEnd= 0,
	miAccessCommit= 1,
	miAccessRollback = 2
};

enum LayerInfoTypeConstants
{
	miLayerInfoTypeTab = 0,
	miLayerInfoTypeUserDraw = 1,
	miLayerInfoTypeRaster = 2,
	miLayerInfoTypeShape = 3,
	miLayerInfoTypeServer = 4,
	miLayerInfoTypeGeodictUserName = 5
};

// forward delcarations
class CMapXAnnotations;
class CMapXLayers;
class CMapXDataset;
class CMapXDatasets;
class CMapXStyle;
class CMapXTitle;
class CMapXAnnotation;
class CMapXGraphic;
class CMapXLayer;
class CMapXSelection;
class CMapXFeatures;
class CMapXFeature;
class CMapXDataset;
class CMapXFields;
class CMapXField;
class CMapXThemes;
class CMapXTheme;
class CMapXLegend;
class CMapXLegendTexts;
class CMapXLegendText;
class CMapXRangeCategories;
class CMapXIndividualValueCategories;
class CMapXMultivarCategories;
class CMapXThemeProperties;
class CMapXLabelProperties;
class CMapXIndividualValueCategory;
class CMapXRangeCategory;
class CMapXMultivarCategory;
class CMapXSourceRows;
class CMapXSourceRow;
class CMapXLayerFind;
class CMapXFindFeature;
class CMapXFindResult;
class CMapXFindMatches;
class CMapXFindMatch;
class CMapXRectangle;
class CMapXGeosets;
class CMapXGeoset;
class CMapXParts;
class CMapXPoints;
class CMapXPoint;
class CMapXFeatures;
class CMapXCoordSys;
class CMapXBitmapSymbols;
class CMapXBitmapSymbol;
class CMapXFeatureFactory;
class CMapXResolveObjects;
class CMapXResolveObject;
class COptionalVariant;


// simple class to pass to methods that take 
// a variant that we want to mark as optional (not supplied by the method call)
class COptionalVariant: public COleVariant
{
public:
	COptionalVariant() { vt = VT_ERROR; scode = DISP_E_PARAMNOTFOUND; }
};

/////////////////////////////////////////////////////////////////////////////
// CMapX wrapper class

class CMapX : public CWnd
{
protected:
	DECLARE_DYNCREATE(CMapX)
public:
	CLSID const& GetClsid()
	{
    static CLSID const clsid = 
	{ 0x9d6ed188, 0x5910, 0x11d2,  { 0x98, 0xa6, 0x0, 0xa0, 0xc9, 0x74, 0x2c, 0xca } };
		
		return clsid;
	}
	virtual BOOL Create(LPCTSTR lpszClassName,
		LPCTSTR lpszWindowName, DWORD dwStyle,
		const RECT& rect,
		CWnd* pParentWnd, UINT nID,
		CCreateContext* pContext = NULL)
	{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }

    BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
		const RECT& rect, CWnd* pParentWnd, UINT nID,
		CFile* pPersist = NULL, BOOL bStorage = FALSE,
		BSTR bstrLicKey = NULL)
	{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
		pPersist, bStorage, bstrLicKey); }

	// default bAddRef is false because you don't need to addref
	// when passing result to Feature.Attach();
	LPDISPATCH GetDispatch(BOOL bAddRef=FALSE);

// Attributes
public:
	CString GetVersion();
	OLE_HANDLE GetHWnd();
	CMapXAnnotations GetAnnotations();
	CMapXLayers GetLayers();
	BOOL GetAutoRedraw();
	void SetAutoRedraw(BOOL);
	double GetZoom();
	void SetZoom(double);
	double GetCenterX();
	void SetCenterX(double);
	double GetCenterY();
	void SetCenterY(double);
	CString GetGeoSet();
	void SetGeoSet(LPCTSTR);
	double GetGeoSetWidth();
	double GetMapPaperHeight();
	double GetMapPaperWidth();
	short GetMaxSearchTime();
	void SetMaxSearchTime(short);
	long GetPaperUnit();
	void SetPaperUnit(long);
	BOOL GetPreferCompactLegends();
	void SetPreferCompactLegends(BOOL);
	CMapXStyle GetDefaultStyle();
	void SetDefaultStyle(LPDISPATCH);
	CString GetGeoDictionary();
	// this method currently will not work in 'run' mode. which
	// is the only mode MFC Control containers support, so don't bother calling it.
	void SetGeoDictionary(LPCTSTR);

	long GetDataSetTheme();
	void SetDataSetTheme(long);
	long GetCurrentTool();
	void SetCurrentTool(long);
	long GetMousePointer();
	void SetMousePointer(long);
	CMapXDatasets GetDatasets();
	CMapXTitle GetTitle();
	CString GetTitleText();
	void SetTitleText(LPCTSTR);
	long GetMapUnit();
	void SetMapUnit(long);
	double GetRotation();
	void SetRotation(double);
	CMapXGeosets GetGeosets();
	long GetAreaUnit();
	void SetAreaUnit(long);
	CMapXRectangle GetBounds();
	void SetBounds(LPDISPATCH);
	CMapXCoordSys GetDisplayCoordSys();
	void SetDisplayCoordSys(LPDISPATCH);
	CMapXCoordSys GetNumericCoordSys();
	void SetNumericCoordSys(LPDISPATCH);
	BOOL GetExportSelection();
	void SetExportSelection(BOOL);
	CMapXStyle GetSelectionStyle();
	void SetSelectionStyle(LPDISPATCH);
	CMapXFeatureFactory GetFeatureFactory();
	long GetDefaultConversionResolution();
	void SetDefaultConversionResolution(long);
	long GetBackColor();
	void SetBackColor(long);
	long GetMousewheelSupport();
	void SetMousewheelSupport(long);
	BOOL GetMatchNumericFields();
	void SetMatchNumericFields(BOOL);
	double GetMapScreenWidth();
	double GetMapScreenHeight();
	CString GetSearchPath();
	void SetSearchPath(LPCTSTR propVal);
	long GetRedrawInterval();
	void SetRedrawInterval(long l);
	short GetMatchThreshold();
	void SetMatchThreshold(short l);
	BOOL GetWaitCursorEnabled();
	void SetWaitCursorEnabled(BOOL b);
	BOOL GetPanAnimationLayer();
	void SetPanAnimationLayer(BOOL b);
	long GetInfotipPopupDelay();
	void SetInfotipPopupDelay(long propVal);
	CString GetMouseIcon();
	void SetMouseIcon(LPCTSTR propVal);
	BOOL GetInfotipSupport();
	void SetInfotipSupport(BOOL b);

// Operations
public:
	void ConvertCoord(float* ScreenX, float* ScreenY, double* MapX, double* MapY, short Direction);
	void ZoomTo(double Zoom, double X, double Y);
	void CreateCustomTool(short ToolNumber, short Type, short Cursor, const VARIANT& ShiftCursor, const VARIANT& CtrlCursor, const VARIANT& bInfoTips);
	void CreateCustomTool(short ToolNumber, short Type, short Cursor)
		{ CreateCustomTool(ToolNumber, Type, Cursor, COptionalVariant(), COptionalVariant(), COptionalVariant()); }

	double Distance(double X1, double Y1, double X2, double Y2);
	void Refresh();
	void PrintMap(long hDC, long X, long Y, long W, long H);

	void ExportMap(LPCTSTR Destination, short Format, const VARIANT& Width, const VARIANT& Height);
	void ExportMap(LPCTSTR Destination, short Format) 
		{	ExportMap(Destination, Format, COptionalVariant(), COptionalVariant()); }
	void ExportMap(LPCTSTR Destination, short Format, double Width, double Height)
		{	ExportMap(Destination, Format, COleVariant(Width), COleVariant(Height)); }
	
	void PropertyPage();
	void ConvertCoordV(VARIANT* ScreenX, VARIANT* ScreenY, VARIANT* MapX, VARIANT* MapY, short Direction);
	void SetSize(long Width, long Height);
	BOOL IsPointVisible(double X, double Y);
	BOOL ClipLine(double* X1, double* Y1, double* X2, double* Y2);
	BOOL ClipLineV(VARIANT* X1, VARIANT* Y1, VARIANT* X2, VARIANT* Y2);
	void SaveMapAsGeoset(LPCTSTR Name, LPCTSTR Filespec);
	void AboutBox();
};

// EVENT Prototypes
// For dispatch objects passed to events, the event handler should not change the reference count
// ie: do not call release on the object because an ocx does not do an addref before passing the
// object to the event
/*
	void Click();
	void DblClick();
	void Error(short Number, BSTR* Description, long Scode, LPCTSTR Source, LPCTSTR HelpFile, long HelpContext, BOOL* CancelDisplay);
	void KeyDown(short* KeyCode, short Shift);
	void KeyPress(short* KeyAscii);
	void KeyUp(short* KeyCode, short Shift);
	void MouseMove(short* Button, short* Shift, float* X, float* Y);
	void MouseDown(short* Button, short* Shift, float* X, float* Y);
	void MouseUp(short* Button, short* Shift, float* X, float* Y);
	void SelectionChanged();
	void ResolveDataBind(short Flag, short NumMatches, const VARIANT& Matches, short* Choice, BOOL* Cancel);
	void ToolUsed(short ToolNum, double X1, double Y1, double X2, double Y2, double Distance, BOOL Shift, BOOL Ctrl, BOOL* EnableDefault);
	void RequestData(LPCTSTR DataSetName, long Row, short Field, VARIANT* Value, BOOL* Done);
	void DataMismatch(LPCTSTR DataSetName, long Row, BSTR* GeoFieldValue);
	void MapViewChanged();
	void AnnotationAdded(LPDISPATCH Annotation);
	void AnnotationChanged(short ChangeType, LPDISPATCH Annotation, BOOL* EnableDefault);
	void ThemeModifyRequested(LPDISPATCH Theme);
	void DrawUserLayer(LPDISPATCH Layer, long hOutputDC, long hAttributeDC, LPDISPATCH RectFull, LPDISPATCH RectInvalid);
	void PolyToolUsed(short ToolNum, long Flags, LPDISPATCH Points, BOOL bShift, BOOL bCtrl, BOOL FAR* EnableDefault) 
	void ResolveDataBindEx(short Flag, short NumMatches, const VARIANT& Matches, short* Choice, BOOL* Cancel);
	void MapDraw(short Flag);
*/

/////////////////////////////////////////////////////////////////////////////
// CMapXSourceRow wrapper class

class CMapXSourceRow : public COleDispatchDriver
{
public:
	CMapXSourceRow() {}		// Calls COleDispatchDriver default constructor
	CMapXSourceRow(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CMapXSourceRow(const CMapXSourceRow& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// Attributes
public:
	long GetRow();

// Operations
public:
};


/////////////////////////////////////////////////////////////////////////////
// CMapXSourceRows wrapper class

class CMapXSourceRows : public COleDispatchDriver
{
public:
	CMapXSourceRows() {}		// Calls COleDispatchDriver default constructor
	CMapXSourceRows(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CMapXSourceRows(const CMapXSourceRows& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

	CMapXSourceRow operator[](long Index) { return Item(Index); }

// Attributes
public:
	long GetCount();

// Operations
public:
	CMapXSourceRow Item(const VARIANT& Index);
	CMapXSourceRow Item(long Index) { return Item(COleVariant(Index)); }
};

/////////////////////////////////////////////////////////////////////////////
// CMapXDataset wrapper class

class CMapXDataset : public COleDispatchDriver
{
public:
	CMapXDataset() {}		// Calls COleDispatchDriver default constructor
	CMapXDataset(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CMapXDataset(const CMapXDataset& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// Attributes
public:
	CString GetName();
	void SetName(LPCTSTR);
	long GetRowCount();
	CMapXFields GetFields();
	CMapXThemes GetThemes();
	long GetGeoField();
	long GetSecondaryGeoField();
	CMapXLayer GetLayer();
	short GetType();

// Operations
public:
	void Refresh();
	VARIANT GetValue(const VARIANT& Row, const VARIANT& Column);
	VARIANT GetValue(long Row, long Column)
		{ return GetValue(COleVariant(Row), COleVariant(Column)); }
	VARIANT GetValue(long Row, LPCTSTR Column)
		{ return GetValue(COleVariant(Row), COleVariant(Column)); }
	
	CMapXSourceRows GetSourceRows(const VARIANT& Row);
	CMapXSourceRows GetSourceRows(long Row)
		{ return GetSourceRows(COleVariant(Row)); }
};

/////////////////////////////////////////////////////////////////////////////
// CMapXDatasets wrapper class

class CMapXDatasets : public COleDispatchDriver
{
public:
	CMapXDatasets() {}		// Calls COleDispatchDriver default constructor
	CMapXDatasets(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CMapXDatasets(const CMapXDatasets& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// Attributes
public:
	long GetCount();
	
	CMapXDataset operator[](long Index) { return Item(Index); }
	CMapXDataset operator[](LPCTSTR Index) { return Item(Index); }

	BOOL GetBuildSourceRows();
	void SetBuildSourceRows(BOOL b);


// Operations
public:
	CMapXDataset Add(long Type, const VARIANT& SourceData, const VARIANT& Name, const VARIANT& GeoField, const VARIANT& SecondaryGeoField, const VARIANT& BindLayer, const VARIANT& Fields, const VARIANT& Dynamic);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -