IPolyCtlest l'interface qui contient vos méthodes personnalisées et propriétés. La façon la plus simple pour ajouter une propriété à cette interface est elle cliquez dans ClassView et sélectionnez Ajout de propriété.

La boîte de dialogue Ajout de propriété d'Interface apparaît, vous permettant d'entrer dans les détails de la propriété que vous souhaitez ajouter:

MIDL (le programme qui compile les fichiers .idl) définit une méthode Get qui récupère la propriété et une méthode de mettre qui définit la propriété. Lorsque MIDL compile le fichier, il automatiquement définit ces deux méthodes de l'interface en ajoutant put_ et get_ le nom de la propriété.
Ajoutez les lignes nécessaires au fichier .idl, avec la boîte de dialogue Ajout de propriété d'Interface aussi ajoute les prototypes de fonction Get et Put pour la définition de classe dans PolyCtl.h et ajoute une implémentation vide à PolyCtl.cpp.
Pour définir et récupérer la propriété, vous devez une place pour la stocker. De FileView, ouvrez PolyCtl.h et ajoutez la ligne suivante à la fin de la définition de classe après m_clrFillColor est défini:
  ; m_nSides court
Maintenant, vous pouvez implémenter les méthodes Get et Put . Les get_Sides et put_Sides des définitions de fonction ont été ajoutées à la PolyCtl.h. Vous devez ajouter du code dans PolyCtl.cpp pour correspondre à ce qui suit:
STDMETHODIMP CPolyCtl::get_Sides(short *pVal)
{
* pVal = m_nSides ;
return S_OK ;
}
STDMETHODIMP CPolyCtl::put_Sides(short newVal)
{
Si (newVal gt; 2 & & newVal < 101)
{
m_nSides = newVal ;
return S_OK ;
}
autre
erreur (_T ("forme doit avoir entre 3 et 100")) ;
}
Les get_Sides fonction retourne simplement la valeur actuelle de la propriété de côtés par le pVal pointeur. Dans la put_Sides méthode, vous vous assurer que l'utilisateur est définissant la propriété de côtés à une valeur acceptable. Vous avez besoin de plus de 2 côtés, et puisque vous va être stocker un tableau de points pour chaque côté plus tard, 100 est une limite raisonnable pour une valeur maximale. Si une valeur non valide est passée vous utilisez la fonction ATL erreur pour définir les détails de l'interface IErrorInfo . Cette option est utile si votre conteneur a besoin de plus d'informations sur l'erreur que le renvoyé HRESULT.
La dernière chose que vous devez faire pour initialiser la propriété m_nSides . Faire un triangle forme par défaut en ajoutant une ligne au constructeur dans PolyCtl.h:
CPolyCtl()
{
m_nSides = 3 ;
}
Vous avez maintenant une propriété appelée côtés. Il n'est pas beaucoup utilisée jusqu'à ce que vous faire quelque chose avec elle, ensuite, que vous modifierez le code de dessin pour l'utiliser.
Retour à l'étape 2 |nbsp ; Passer à l'étape 4