Как назначить пользовательский значок для кнопки в Mappoint? - PullRequest
3 голосов
/ 17 октября 2008

Я пишу приложение MFC, которое использует MS Mappoint OCX. Мне нужно отобразить расположение людей и транспортных средств на карте, и лучше всего это делать с помощью объектов Pushpin. У меня нет проблем с отображением значка стандартной кнопки с текстом, но я хочу изменить значок на другой. Из ограниченного количества информации о программировании Mappoint появляется способ сделать это, создать объект символа из объекта символов, а затем назначить это кнопке, как это ..

CSymbols symbols;
CSymbol symbol;

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

Но программа аварийно завершает работу с необработанным исключением в инструкции symbols.add.

Может кто-нибудь сказать мне, что я здесь не так делаю? или я на неправильном пути?

Спасибо за ваше время

Ian

Ответы [ 2 ]

4 голосов
/ 21 октября 2008

Я сам нашел решение этой проблемы. Следующий код работает ..

CSymbols symbols;
CSymbol symbol;

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

Где map - это элемент управления Mappoint.

0 голосов
/ 24 января 2011

Похоже, ваша ошибка в том, что коллекция символов не была создана: так что да, конечно, она выдаст исключение.

Как вы обнаружили, доступ к коллекции символов можно получить с помощью свойства Symbols в вашем объекте MapPoint.Map.

Все это в справочнике MapPoint, но в основном в справочной форме с несколькими учебниками. Такие сайты, как http://www.mp2kmag.com, http://www.mapforums.com и http://www.mapping -tools.com / howto / - хорошее начало, чтобы узнать больше.

(полное раскрытие информации: последний сайт принадлежит мне, информация находится в пути «как это сделать», в то время как остальная часть сайта носит коммерческий характер)

...