Presse-papiers : copier-coller des données
Cette rubrique décrit le travail minimal nécessaire pour implémenter la copie vers et le collage à partir du Presse-papiers dans votre application OLE. Il est recommandé de lire les rubriques Objets de données et Sources de données (OLE) avant de continuer.
Avant de pouvoir implémenter la copie ou le collage, vous devez d’abord fournir des fonctions pour gérer les options Copier, Couper et Coller dans le menu Modifier.
Copie ou coupe de données
Pour copier des données dans le Presse-papiers
Déterminez si les données à copier sont des données natives ou un élément incorporé ou lié.
Si les données sont incorporées ou liées, obtenez un pointeur vers l’objet
COleClientItem
sélectionné.Si les données sont natives et que l’application est un serveur, créez un objet dérivé de
COleServerItem
contenant les données sélectionnées. Sinon, créez unCOleDataSource
objet pour les données.
Appelez la fonction membre de l’élément
CopyToClipboard
sélectionné.Si l’utilisateur a choisi une opération Couper au lieu d’une opération de copie, supprimez les données sélectionnées de votre application.
Pour voir un exemple de cette séquence, consultez les fonctions et les OnEditCut
fonctions dans les exemples de programmes OLE MFC OCLIENT et HIERSVR.OnEditCopy
Notez que ces exemples conservent un pointeur vers les données actuellement sélectionnées. L’étape 1 est donc déjà terminée.
Collage de données
Le collage de données est plus compliqué que de le copier, car vous devez choisir le format à utiliser pour coller les données dans votre application.
Pour coller des données à partir du Presse-papiers
Dans votre classe d’affichage, implémentez
OnEditPaste
pour gérer les utilisateurs qui choisissent l’option Coller dans le menu Modifier.Dans la
OnEditPaste
fonction, créez unCOleDataObject
objet et appelez saAttachClipboard
fonction membre pour lier cet objet aux données du Presse-papiers.Appelez
COleDataObject::IsDataAvailable
à case activée si un format particulier est disponible.Vous pouvez également utiliser
COleDataObject::BeginEnumFormats
pour rechercher d’autres formats jusqu’à ce que vous trouviez celui qui convient le mieux à votre application.Effectuez le collage du format.
Pour obtenir un exemple de fonctionnement, consultez l’implémentation des OnEditPaste
fonctions membres dans les classes d’affichage définies dans les exemples de programmes OLE MFC OCLIENT et HIERSVR.
Conseil
L’avantage principal de séparer l’opération de collage en sa propre fonction est que le même code de collage peut être utilisé lorsque les données sont supprimées dans votre application pendant une opération de glisser-déplacer. Comme dans OCLIENT et HIERSVR, votre OnDrop
fonction peut également appeler DoPasteItem
, réutilisant le code écrit pour implémenter des opérations de collage.
Pour gérer l’option Coller spécial dans le menu Modifier, consultez les boîtes de dialogue de rubrique dans OLE.
Que voulez-vous en savoir plus sur
Voir aussi
Presse-papiers : utilisation du mécanisme de Presse-papiers OLE