2008-10-17 3 views
3

J'écris une application MFC qui utilise le MS Mappoint OCX. J'ai besoin d'afficher les emplacements des personnes et des véhicules sur la carte et la meilleure chose à faire est d'utiliser des objets en punaise. Je n'ai aucun problème à afficher une icône de punaise de stock avec du texte, mais je veux changer l'icône en icône personnalisée. De la quantité limitée d'informations de programmation Mappoint là il semble que la façon de le faire est de créer un objet symbole d'un symbole objet attribuer ensuite à un pushpin comme ça ..Comment affecter une icône personnalisée à une punaise dans Mappoint?

CSymbols symbols; 
CSymbol symbol; 

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

Mais le programme se bloque avec un exception non gérée dans l'instruction symbols.add. Est-ce que quelqu'un peut me dire ce que je fais mal ici? ou suis-je totalement sur la mauvaise piste?

Merci pour votre temps

Ian

Répondre

4

Je trouve la solution à celui-ci moi-même. Le code suivant fonctionne ..

CSymbols symbols; 
CSymbol symbol; 

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

Où map est le contrôle Mappoint.

0

Donc, il semble que votre erreur était que la collection de symboles n'avait pas été créée: alors oui, bien sûr, elle lèvera une exception.

Comme vous l'avez constaté, la collection de symboles est accessible à l'aide de la propriété Symbols de votre objet MapPoint.Map. Tout cela est dans la référence MapPoint, mais il est principalement dans le formulaire de référence avec quelques tutoriels. Les sites Web tels que http://www.mp2kmag.com, http://www.mapforums.com et http://www.mapping-tools.com/howto/ sont un bon début pour en savoir plus.

(Divulgation complète: le dernier site est le mien, l'information est dans le chemin "howto", tandis que le reste du site est de nature commerciale)

Questions connexes