Visual c++ 如何在Mappoint中将自定义图标指定给图钉?

Visual c++ 如何在Mappoint中将自定义图标指定给图钉?,visual-c++,mappoint,Visual C++,Mappoint,我正在编写一个使用MS Mappoint OCX的MFC应用程序。我需要在地图上显示人员和车辆的位置,最好的方法是使用图钉对象。我没有问题显示一个股票图钉图标与一些文字,但想改变一个自定义设计的图标。从有限的Mappoint编程信息来看,这样做的方法似乎是从symbols对象创建一个symbol对象,然后将其分配给一个图钉,如下所示 CSymbols symbols; CSymbol symbol; symbol=symbols.Add("c:/temp/myicon.ico"); pushp

我正在编写一个使用MS Mappoint OCX的MFC应用程序。我需要在地图上显示人员和车辆的位置,最好的方法是使用图钉对象。我没有问题显示一个股票图钉图标与一些文字,但想改变一个自定义设计的图标。从有限的Mappoint编程信息来看,这样做的方法似乎是从symbols对象创建一个symbol对象,然后将其分配给一个图钉,如下所示

CSymbols symbols;
CSymbol symbol;

symbol=symbols.Add("c:/temp/myicon.ico");
pushpin.put_Symbol(symbol.get_ID());
但程序崩溃,symbols.add指令出现未处理的异常

有人能告诉我我做错了什么吗?还是我完全走错路了

谢谢你的时间


伊恩

我自己找到了解决这个问题的办法。下面的代码有效

CSymbols symbols;
CSymbol symbol;

symbols=map.get_Symbols();
symbol=symbols.Add("c:/temp/myicon.ico");
pushpin.put_Symbol(symbol.get_ID());

其中map是Mappoint控件。

因此,您的错误似乎是尚未创建符号集合:因此,是的,它当然会引发异常

正如您所发现的,可以使用MapPoint.Map对象上的symbols属性访问symbols集合

所有这些都在MapPoint参考中,但主要是参考形式,很少有教程。、和等网站是了解更多信息的良好开端

(完全披露:最后一个网站是我的,信息在“如何”路径中,而网站的其余部分是商业性质的)