📄 mapx.h
字号:
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 + -