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

📄 mapx.h

📁 采用apx开发GPS车辆监控的源码
💻 H
📖 第 1 页 / 共 5 页
字号:
	miColorRed = 255,
	miColorGreen = 65280,
	miColorBlue = 16711680,
	miColorMagenta = 16711935,
	miColorCyan = 16776960,
	miColorWhite = 16777215,
	miColorLightGray = 12632256,
	miColorDarkGray = 4210752,
	miColorGray = 8421504,
	miColorPaleYellow = 13697023,
	miColorLightYellow = 8454143,
	miColorYellow = 65535,
	miColorLimeGreen = 12639424,
	miColorTeal = 8421440,
	miColorDarkGreen = 16384,
	miColorMaroon = 128,
	miColorPurple = 8388736,
	miColorOrange = 33023,
	miColorKhaki = 7051175,
	miColorOlive = 32896,
	miColorBrown = 4210816,
	miColorNavy = 8404992,
	miColorScrollBars = 0x80000000,
	miColorDesktop = 0x80000001,
	miColorActiveTitleBar = 0x80000002,
	miColorInactiveTitleBar = 0x80000003,
	miColorMenuBar = 0x80000004,
	miColorWindowBackground = 0x80000005,
	miColorWindowFrame = 0x80000006,
	miColorMenuText = 0x80000007,
	miColorWindowText = 0x80000008,
	miColorTitleBarText = 0x80000009,
	miColorActiveBorder = 0x8000000A,
	miColorInactiveBorder = 0x8000000B,
	miColorApplicationWorkspace = 0x8000000C,
	miColorHighlight = 0x8000000D,
	miColorHighlightText = 0x8000000E,
	miColorButtonFace = 0x8000000F,
	miColorButtonShadow = 0x80000010,
	miColorGrayText = 0x80000011,
	miColorButtonText = 0x80000012,
	miColorInactiveCaptionText = 0x80000013,
	miColor3DHighlight = 0x80000014,
	miColor3DDarkShadow = 0x80000015,
	miColor3DLight = 0x80000016,
	miColorInfoText = 0x80000017,
	miColorInfoBackground = 0x80000018,
};

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 StyleUnitConstants
{
	miStyleUnitPixel = 0,
	miStyleUnitTenthsOfPoint = 1
};

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

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

enum LayerEndAccessConstants
{
	miAccessEnd= 0,
};

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

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

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

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

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

enum ToolFlagConstants
{
	miToolBegin = 0,
	miToolEnd = 1,
	miToolEndEscaped = 2,
	miToolInProgress = 3,
	miToolCompleted = 4
};

enum FeatureEditModeConstants
{
	miEditModeFeature = 1,
	miEditModeNode = 2,
	miMoveDuplicateNodes = 4,
	miDeleteDuplicateNodes = 8,
	miEditModeAddNode = 64
};

// forward delcarations
class CMapXAnnotation;
class CMapXAnnotations;
class CMapXBitmapSymbol;
class CMapXBitmapSymbols;
class CMapXCoordSys;
class CMapXDataset;
class CMapXDatasets;
class CMapXFeature;
class CMapXFeatureFactory;
class CMapXFeatures;
class CMapXField;
class CMapXFields;
class CMapXFindFeature;
class CMapXFindMatch;
class CMapXFindMatches;
class CMapXFindResult;
class CMapXGeoset;
class CMapXGeosets;
class CMapXGraphic;
class CMapXIndividualValueCategories;
class CMapXIndividualValueCategory;
class CMapXLabelProperties;
class CMapXLayer;
class CMapXLayerFind;
class CMapXLayerInfo;
class CMapXLayers;
class CMapXLegend;
class CMapXLegendText;
class CMapXLegendTexts;
class CMapXMultivarCategories;
class CMapXMultivarCategory;
class CMapXParts;
class CMapXPoint;
class CMapXPoints;
class CMapXRangeCategories;
class CMapXRangeCategory;
class CMapXRectangle;
class CMapXResolveObject;
class CMapXResolveObjects;
class CMapXRowValue;
class CMapXRowValues;
class CMapXSelection;
class CMapXSourceRow;
class CMapXSourceRows;
class CMapXStyle;
class CMapXTheme;
class CMapXThemeProperties;
class CMapXThemes;
class CMapXTitle;
class CMapXVariable;
class CMapXVariables;
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; }
};

// another helper class to handle dispatch variants
class COleVariantDispatch: public COleVariant
{
public:
	COleVariantDispatch(LPDISPATCH pdisp)
	{
		vt = VT_DISPATCH;
		pdispVal = pdisp;
		pdispVal->AddRef();
	}
};


// to derive CMapX from COleDispatchDriver instead of CWnd,
// comment out the next line
#define CWND_MAPX


/////////////////////////////////////////////////////////////////////////////
// CMapX wrapper class
#ifdef CWND_MAPX

//----------------------------
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); }

#else

class CMapX : public COleDispatchDriver
{
public:
	CLSID const& GetClsid()
	{
		static CLSID const clsid =
		{ 0x9d6ed188, 0x5910, 0x11d2,  { 0x98, 0xa6, 0x0, 0xa0, 0xc9, 0x74, 0x2c, 0xca } };
		return clsid;
	}
#endif //of #ifdef CWND_MAPX

	// 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 GetDataSetGeoField();
	void SetDataSetGeoField(LPCTSTR);
	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);
	OLE_COLOR GetBackColor();
	void SetBackColor(OLE_COLOR);
	long GetMousewheelSupport();
	void SetMousewheelSupport(long);
	BOOL GetMatchNumericFields();
	void SetMatchNumericFields(BOOL);
	double GetMapScreenWidth();
	double GetMapScreenHeight();
	long GetRedrawInterval();
	void SetRedrawInterval(long l);
	CString GetSearchPath();
	void SetSearchPath(LPCTSTR propVal);
	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);
	short GetFeatureEditMode();
	void SetFeatureEditMode(short);
	long GetCheckEscapeKeyInterval();
	void SetCheckEscapeKeyInterval(long);

// 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, const VARIANT& Cursor, const VARIANT& ShiftCursor, const VARIANT& CtrlCursor, const VARIANT& bInfoTips);
	void CreateCustomTool(short ToolNumber, short Type, short Cursor)
	{ CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COptionalVariant(), COptionalVariant(), COptionalVariant()); }
	void CreateCustomTool(short ToolNumber, short Type, LPCTSTR Cursor)
	{ CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COptionalVariant(), COptionalVariant(), COptionalVariant()); }
	void CreateCustomTool(short ToolNumber, short Type, short Cursor, bool bInfoTips)
	{
		short sInfoTips = (short) bInfoTips;
		CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COptionalVariant(), COptionalVariant(), COleVariant(sInfoTips));
	}
	void CreateCustomTool(short ToolNumber, short Type, LPCTSTR Cursor, bool bInfoTips)
	{
		short sInfoTips = (short) bInfoTips;
		CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COptionalVariant(), COptionalVariant(), COleVariant(sInfoTips));
	}
	void CreateCustomTool(short ToolNumber, short Type, short Cursor, short ShiftCursor, short CtrlCursor)
	{ CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COleVariant(ShiftCursor), COleVariant(CtrlCursor), COptionalVariant()); }
	void CreateCustomTool(short ToolNumber, short Type, LPCTSTR Cursor, LPCTSTR ShiftCursor, LPCTSTR CtrlCursor)
	{ CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COleVariant(ShiftCursor), COleVariant(CtrlCursor), COptionalVariant()); }
	void CreateCustomTool(short ToolNumber, short Type, short Cursor, short ShiftCursor, short CtrlCursor, bool bInfoTips)
	{
		short sInfoTips = (short) bInfoTips;
		CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COleVariant(ShiftCursor), COleVariant(CtrlCursor), COleVariant(sInfoTips));
	}
	void CreateCustomTool(short ToolNumber, short Type, LPCTSTR Cursor, LPCTSTR ShiftCursor, LPCTSTR CtrlCursor, bool bInfoTips)
	{
		short sInfoTips = (short) bInfoTips;
		CreateCustomTool(ToolNumber, Type, COleVariant(Cursor), COleVariant(ShiftCursor), COleVariant(CtrlCursor), COleVariant(sInfoTips));
	}

	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 Pan(float ScreenX, float ScreenY);
	void AboutBox();
};

// EVENT Prototypes
// For dispatch objects passed to events, the event handler should not change the reference count

⌨️ 快捷键说明

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