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

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
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é.
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é de page de formulaire Explorateur

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 148222 - Dernière mise à jour : 03/01/2014 15:20:38 - Révision : 5.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbinfo kbctrl kbhowto kbpropsheet KB148222 KbMtfr
Commentaires