presse-papiers : Copier et coller des données
Cette rubrique décrit le travail minimale nécessaire pour implémenter la copie et le collage depuis le presse-papiers de 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 et le collage, vous devez fournir des fonctions pour gérer la copie, couper, ainsi que les options de coller dans le menu Edition.
Copie des données slice
Pour copier des données dans le Presse-papiers
Déterminez si les données à copier est fournie native ou est une incorporée ou un élément lié.
Si les données sont incorporées ou liées, obtenir un pointeur vers l'objet COleClientItem sélectionné.
Si les données sont natives et l'application est un serveur, créez un objet dérivé de COleServerItem contenant les données sélectionnées. Dans, créez un objet COleDataSource de données.
Appelez la fonction membre de l'élément CopyToClipboard sélectionné.
Si l'utilisateur choisissait une opération de secteur au lieu d'une opération de copie, supprimez les données sélectionnées dans votre application.
Pour obtenir un exemple de cette séquence, consultez OnEditCut et OnEditCopy fonctions dans des programmes d'exemple de liaison et incorporation d'objets MFC OCLIENT et HIERSVR. Notez que ces exemples contiennent un pointeur vers les données sélectionnées, ainsi étape 1 est déjà terminée.
Collage de données
Coller des données est plus compliqué que les copier parce que vous devez choisir le format à utiliser pour coller des données dans votre application.
Pour coller les contrôles à partir du Presse-papiers.
Dans la classe d'affichage, implémentez OnEditPaste pour gérer les utilisateurs choisissant l'option pour coller dans le menu Edition.
Dans la fonction OnEditPaste, créez un objet de COleDataObject et appelez la fonction membre AttachClipboard pour lier l'objet aux données dans le presse-papiers.
Appelez COleDataObject::IsDataAvailable pour vérifier si un format spécifique est disponible.
Ou bien, vous pouvez utiliser COleDataObject::BeginEnumFormats pour rechercher d'autres formats jusqu'à ce que vous trouviez le plus adapté à votre application.
Exécutez le collage de format.
Pour consulter un exemple montrant comment cela fonctionne, consultez l'implémentation des fonctions membres OnEditPaste dans les classes d'affichage définies dans les programmes d'exemple de liaison et incorporation d'objets MFC OCLIENT et HIERSVR.
Conseil
Le principal avantage de séparer l'opération de collage dans sa propre fonction est que le même code de collage peut être utilisé lorsque les données sont tronquées dans votre application pendant une opération de glisser-déplacer.Comme dans OCLIENT et HIERSVR, votre fonction OnDrop peut également appeler DoPasteItem, réutilisant le code écrit dans les opérations de collage d'un script.
Pour gérer l'option spéciale de coller dans le menu Edition, consultez la rubrique Boîtes de dialogue dans OLE.
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
Voir aussi
Référence
presse-papiers : À l'aide de le mécanisme de presse-papiers OLE