Comment faire pour mettre à jour les valeurs de propriété dans une page de propriétés à l'aide de Visual C++

Traductions disponibles Traductions disponibles
Numéro d'article: 148222 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Remarque Microsoft Visual C++ .NET (2002) prend en charge le modèle de code managé qui est fourni par Microsoft .NET Framework et le modèle de code Microsoft Windows natif non managé. Tout ou partie des informations de cet article s'applique au code de Visual C++ managé. Vous pouvez appliquer ces informations uniquement en utilisant le .NET Framework.Microsoft Visual C++ 2005 prend en charge le modèle de code managé qui est fourni par Microsoft .NET Framework et le modèle de code Microsoft Windows natif non managé.
Agrandir tout | Réduire tout

Sommaire

Résumé

Pour modifier une propriété d'un contrôle OLE, vous devez normalement modifier la valeur de propriétés dans la page de propriétés du contrôle. Toutefois, il est possible pour une propriété être modifiable à partir de plusieurs pages de propriété en particulier dans les environnements de développement, tels que Visual Basic. Dans ce cas, lorsque vous modifiez la propriété dans la page de propriétés du contrôle, vous devez synchroniser la valeur dans le formulaire de propriété de Visual Basic. Cet article montre, par exemple, comment le faire.

Plus d'informations

Par exemple, dans Visual Basic, placez l'exemple de contrôle Circ3 sur la page de formulaire. Puis cliquez sur le bouton droit de la souris pour sélectionner des propriétés du contrôle. Vous remarquerez que les mêmes propriétés peuvent être vus dans la fenêtre de propriétés de Visual Basic. Par exemple, une des propriétés de Circ3 est la propriété CircleOffset. Si vous modifiez cette valeur dans le contrôle de page de propriétés, puis cliquez sur Appliquer, vous remarquerez que la valeur n'a pas été mis à jour dans la fenêtre de propriétés de Visual Basic. Pour synchroniser la valeur dans les deux, vous devez appeler BoundPropertyChanged(dispid) pour chaque propriété que vous souhaitez mettre à jour.

Remarque Le dispid représente l'id de la propriété pour mettre à jour. Il se trouve généralement dans le fichier d'en-tête de la classe dérivée de COleControl. Dispids pour le Circ3 contrôler suivez :
   // Dispatch and event IDs
   public:
          enum {
          //{{AFX_DISP_ID(CCirc3Ctrl)
          dispidCircleShape = 2L,
          dispidCircleOffset = 3L,
          dispidFlashColor = 1L,
          dispidNote = 4L,
          eventidClickIn = 1L,
          eventidClickOut = 2L,
          //}}AFX_DISP_ID
          };
				
l'exemple de code suivant montre comment modifier l'exemple Circ3 pour synchroniser les propriétés CircleShape et CircleOffset données les dispids ci-dessus.

Exemple de code

   /* Compile options needed: none
   */ 

   void CCirc3Ctrl::OnCircleShapeChanged()
   {
      SetModifiedFlag();

      // force the control to redraw itself
      InvalidateControl();

      // reset the circle offset, if necessary
      if (m_circleShape)
         SetCircleOffset(0);

      BoundPropertyChanged(dispidCircleShape);      // *ADD THIS LINE*
   }

   void CCirc3Ctrl::SetCircleOffset(short nNewValue)
   {
      // Validate the specified offset value
      if ((m_circleOffset != nNewValue) && m_circleShape&&
          InBounds(nNewValue))
      {
         m_circleOffset = nNewValue;
         SetModifiedFlag();
         BoundPropertyChanged(dispidCircleOffset); // *ADD THIS LINE*
         InvalidateControl();
      }
   }
				

Propriétés

Numéro d'article: 148222 - Dernière mise à jour: samedi 1 mars 2014 - Version: 5.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Foundation Class Library 4.2 sur le système suivant
    • Microsoft Visual C++ 4.0 Édition Standard
    • Microsoft Visual C++ 5.0 Édition Entreprise
    • Microsoft Visual C++ 6.0 Édition Entreprise
    • Microsoft Visual C++ 5.0 Édition Professionnelle
    • Microsoft Visual C++ 6.0 Édition Professionnelle
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft OLE Control Developer's Kit (CDK)
    • Microsoft Visual C++ 2005 Express Edition
    • Microsoft Visual C++ .NET 2003 Initiation
    • Microsoft Visual C++ .NET 2002 Initiation
Mots-clés : 
kbnosurvey kbarchive kbmt kbinfo kbctrl kbhowto kbpropsheet KB148222 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 148222
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com