hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3384回复:9

VC+MapX请进

楼主#
更多 发布于:2004-12-17 17:21
<P>我是一名MapX的初学者,现在学习利用VC和MapX来进行开发,遇到一个问题,如果纯粹从MapX自带的VC例子来看的话,基本也能看懂,但是不能从根本上理解:在
VC中如何生成“ON_EVENT(CMapxSampleView, IDC_MAP, -600 /* Click */, OnClickMap, VTS_NONE)”这样的事件,其具体步骤是怎么进行的?难道是手工添加进去的?</P>
<P>谢谢!</P><img src="images/post/smile/dvbbs/em12.gif" />
喜欢0 评分0
hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-12-20 13:49
<P>在VC环境中对MapX的引用是通过将其MapX.h和MapX.cpp</P><P>这两个文件引入到工程中而实现的,它能象VB环境中那样</P><P>添加控件吗?</P>
举报 回复(0) 喜欢(0)     评分
hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-12-20 17:17
<P>版主您好,请问在VC集成环境中可以象在VB中那样加入控件吗?如果可以的话,该如何添加呢?</P><P>谢谢!</P>
举报 回复(0) 喜欢(0)     评分
hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-12-20 19:28
<P>版主您好,按照提示的确可以将控件加入到对话框上,然后对地图的处理和操作是不是就和在VB中相同了呢?</P><P>而且这样的话和在工程中加入文件MapX.h和MapX.cpp有什么区别呢?</P>
举报 回复(0) 喜欢(0)     评分
yjinf
路人甲
路人甲
  • 注册日期2004-09-20
  • 发帖数47
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-12-21 09:06
vc中建议用引用MapX.h和MapX.cpp文件的方式,这在MapX开发指南中有提到,用插入倥件的方法会缺少一些函数和类
举报 回复(0) 喜欢(0)     评分
hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-12-21 11:02
<P>学习利用VC编译MapX程序,真的不容易,不像在VB中那么容易,尽管如此,还是必须学习的。我现在是一名从事GIS方面的老师,为了让我的学生在竞争激烈的就业市场增加一些就业机会,还是必须学习,因为我发现很多公司在要人时,强调的往往是VC+*****,说了这么多,我想问个问题:</P><P>在VB中MapX对消息响应的事件,这些都是一些封装好了的,但是如果在VC环境下通过加入MapX.h和MapX.cpp文件来实现对MapX的引用的话,那么只有手工加入MapX对消息的响应了,我想知道的是,如何在VC中知道要添加的消息及其函数中的参数设置?</P><P>谢谢!</P>
举报 回复(0) 喜欢(0)     评分
huaguomountain
路人甲
路人甲
  • 注册日期2004-10-16
  • 发帖数20
  • QQ31966444
  • 铜币156枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-12-21 15:34
<P>消息及其函数中的参数设置,在mapx的sample文件夹下的例子里面有说的,你可以找到看看。</P><P>具体的消息及其函数中的参数设置都有例子的,在代码里面找到看看就可以了。</P><P>// event dispids
#define MAPX_DISPID_SELECTION_CHANGED 0x1
#define MAPX_DISPID_RESOLVEDATABIND 0x2
#define MAPX_DISPID_TOOLUSED 0x3
#define MAPX_DISPID_REQUESTDATA 0x4
#define MAPX_DISPID_DATAMISMATCH 0x5
#define MAPX_DISPID_MAPVIEWCHANGED 0x6
#define MAPX_DISPID_ANNOTATIONADDED 0x7
#define MAPX_DISPID_ANNOTATIONCHANGED 0x8
#define MAPX_DISPID_THEMEMODIFYREQUESTED 0x9
#define MAPX_DISPID_DRAWUSERLAYER 0x0a
#define MAPX_DISPID_POLYTOOLUSED 0x0b
#define MAPX_DISPID_MOUSEWHEEL 0x0c
#define MAPX_DISPID_MAPINITIALIZED 0x0d
#define MAPX_DISPID_RESOLVEDATABINDEX 0xe
#define MAPX_DISPID_MAPDRAW 0xf</P><P>// dispatch id definitions for ole stock events are
// defined in <olectl.h>
// they are included here for reference
#define DISPID_CLICK                    (-600)
#define DISPID_DBLCLICK                 (-601)
#define DISPID_KEYDOWN                  (-602)
#define DISPID_KEYPRESS                 (-603)
#define DISPID_KEYUP                    (-604)
#define DISPID_MOUSEDOWN                (-605)
#define DISPID_MOUSEMOVE                (-606)
#define DISPID_MOUSEUP                  (-607)
#define DISPID_ERROREVENT               (-608)</P><P><a>file://*/</A>
 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);</P><P> 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);
 void AddFeatureToolUsed(short ToolNum, long Flags, IDispatch* Feature, boolean bShift, boolean bCtrl, boolean* EnableDefault);
<a>file://*/</A></P><P>BEGIN_EVENTSINK_MAP(CMapTestView, CView)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_MOUSEMOVE, OnMouseMove_Map, VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_CLICK, OnClick_Map, VTS_NONE)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_DBLCLICK, OnDblClick_Map, VTS_NONE)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_ERROREVENT, OnError_Map, VTS_I2 VTS_PBSTR VTS_I4 VTS_BSTR VTS_BSTR VTS_I4 VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_KEYDOWN, OnKeyDown_Map, VTS_PI2 VTS_I2)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_KEYPRESS, OnKeyPress_Map, VTS_PI2)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_KEYUP, OnKeyUp_Map, VTS_PI2 VTS_I2)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_MOUSEDOWN, OnMouseDown_Map, VTS_PI2 VTS_PI2 VTS_PR4 VTS_PR4)
// ON_EVENT(CMapTestView, IDC_MAP, DISPID_MOUSEUP, OnMouseUp_Map, VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS)</P><P>// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_SELECTION_CHANGED, OnSelectionChanged, VTS_NONE)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_RESOLVEDATABIND, OnResolveDataBind, VTS_I2 VTS_I2 VTS_VARIANT VTS_PI2 VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_REQUESTDATA, OnRequestData, VTS_BSTR VTS_I4 VTS_I2 VTS_PVARIANT VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_DATAMISMATCH, OnDataMismatch, VTS_BSTR VTS_I4 VTS_PBSTR)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_MAPVIEWCHANGED, OnMapViewChanged, VTS_NONE)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_ANNOTATIONADDED, OnAnnotationAdded, VTS_DISPATCH)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_ANNOTATIONCHANGED, OnAnnotationChanged, VTS_I2 VTS_DISPATCH VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_THEMEMODIFYREQUESTED, OnThemeModifyRequested, VTS_DISPATCH)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_DRAWUSERLAYER, OnDrawUserLayer, VTS_DISPATCH VTS_I4 VTS_I4 VTS_DISPATCH VTS_DISPATCH)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_POLYTOOLUSED, OnPolyToolUsed, VTS_I2 VTS_I4 VTS_DISPATCH VTS_BOOL VTS_BOOL VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_TOOLUSED, OnToolUsed, VTS_I2 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_R8 VTS_BOOL VTS_BOOL VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_MOUSEWHEEL, OnMouseWheel, VTS_I4 VTS_I2 VTS_PR4 VTS_PR4 VTS_PBOOL)
// ON_EVENT(CMapTestView, IDC_MAP, MAPX_DISPID_MAPINITIALIZED, OnMapInitialized, VTS_NONE)
END_EVENTSINK_MAP()</P><img src="images/post/smile/dvbbs/em07.gif" />
VC+MapX共同学习,共同提高; QQ: 31966444 msn: huaguomountain@hotmail.com E_mail: huaguogis@126.com
举报 回复(0) 喜欢(0)     评分
hfj
hfj
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数21
  • QQ
  • 铜币168枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2004-12-21 19:09
<P>非常感谢10楼的帮助,在VC环境中添加了对事件的响应后,对于消息函数中的参数类型有些不是很明白,比如VTS_NONE、VTS_I4 、VTS_I2 、VTS_PR4、 VTS_PR4、 VTS_PBOOL等类型,它们标识什么含义,虽然我学习VC有了一段时间,但是VC的内容太多了,我以前就没有遇到过这些类型,不知道该怎么去学习,请指点一下方向,再一次多谢您的帮助!</P>
举报 回复(0) 喜欢(0)     评分
yjinf
路人甲
路人甲
  • 注册日期2004-09-20
  • 发帖数47
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-12-22 09:41
代表不同的数据类型,看VARAINT的结构定义就知道了,而且常用的也就那么几种.
举报 回复(0) 喜欢(0)     评分
tuonibao
路人甲
路人甲
  • 注册日期2004-11-26
  • 发帖数20
  • QQ
  • 铜币177枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2004-12-28 16:06
<P>楼上各位同仁你们好:</P><P>请问:我的mapx安装后怎么没有semple例子,怎么安装。</P><P>谢谢</P><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部