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