Share via


Étape 3 : ajouter une propriété au contrôle

IPolyCtl est l'interface qui contient les méthodes et les propriétés du contrôle, et vous allez ajouter une propriété à celui-ci.

Pour ajouter une propriété à l'aide de l'Assistant Ajout de propriété

  1. Dans l'Affichage de classes, développez la branche polygon.

  2. Cliquez avec le bouton droit sur IPolyCtl.

  3. Dans le menu contextuel, cliquez sur Ajouter, puis cliquez sur Ajouter une propriété.

    L'Assistant Ajout de propriété s'affiche.

  4. Dans la liste déroulante de types de propriété, SHORTsélectionnez.

  5. Tapez Côté comme nom de la propriété.

  6. Cliquez sur Terminé pour terminer ajouter la propriété.

Lorsque vous ajoutez la propriété l'interface, MIDL (le programme qui compile les fichiers .idl) définit une méthode d' Get pour extraire sa valeur et une méthode d' Put pour définir une nouvelle valeur. Les méthodes sont appelées en ajoutant put_ et get_ au nom de la propriété.

L'Assistant Ajout de propriété ajoute les lignes nécessaires au fichier .idl. Il ajoute également des prototypes de fonction d' Get et d' Put à la définition de classe dans PolyCtl.h et ajoute une implémentation vide à PolyCtl.cpp. Vous pouvez contrôler cela en ouvrant PolyCtl.cpp et en recherchant les fonctions get_Sides et put_Sides.

Bien que vous ayez maintenant des fonctions squelettiques pour définir et récupérer la propriété, elle a besoin d'un emplacement à être stocké. Vous allez créer une variable pour stocker la propriété et mettre à jour les fonctions en conséquence.

Pour créer une variable pour stocker la propriété, et pour gérer la mise et pour obtenir des méthodes

  1. Dans l'explorateur de solutions, PolyCtl.h ouverts et ajoutez la ligne suivante après la définition d' m_clrFillColor:

    short m_nSides;
    
  2. Affectez la valeur par défaut d' m_nSides. Faites de la forme par défaut un triangle en ajoutant une ligne au constructeur dans PolyCtl.h :

    m_nSides = 3;
    
  3. Implémentez les méthodes Get et Put. Les déclarations de fonction d' get_Sides et d' put_Sides ont été ajoutées à PolyCtl.h. Remplacez le code dans PolyCtl.cpp pour get_Sides et put_Sides par le code suivant :

    STDMETHODIMP CPolyCtl::get_Sides(short* pVal)
    {
       *pVal = m_nSides;
    
       return S_OK;
    }
    
    STDMETHODIMP CPolyCtl::put_Sides(short newVal)
    {
       if (2 < newVal && newVal < 101)
       {
          m_nSides = newVal;
          return S_OK;
       }
       else
       {
          return Error(_T("Shape must have between 3 and 100 sides"));
       }
    }
    

La méthode d' get_Sides retourne la valeur actuelle de la propriété d' Sides via le pointeur d' pVal . Dans la méthode d' put_Sides , le code vérifie l'utilisateur définit la propriété d' Sides à une valeur acceptable. Le minimum doit être de 2, et parce qu'un tableau de points est utilisé pour chaque côté, 100 est une limite raisonnable pour une valeur maximale.

Vous avez maintenant une propriété appelée Sides. Dans l'étape suivante, vous allez modifier le code de dessin à utiliser.

Pour revenir à l'étape 2 | Sur à l'étape 4

Voir aussi

Référence

Didacticiel ATL