Presse-papiers : Copier et coller des données
Cette rubrique décrit le travail minimale requise pour implémenter la copie et coller du presse-papiers dans votre application OLE.Il est recommandé de lire les rubriques d' objets de données et sources de données (OLE) avant de continuer.
Avant de pouvoir implémenter la copier ou coller, vous devez d'abord fournir des fonctions pour traiter copier, couper, et les options de collage dans le menu Edition.
Copier ou couper données
Pour copier des données au presse-papiers
Déterminez si les données copier est données natives ou est une incorporée ou un élément lié.
Si les données est intégrée ou liée, obtenir un pointeur vers l'objet d' COleClientItem sélectionné.
Si les données est native et l'application est un serveur, créez un objet dérivé d' COleServerItem contenant les données sélectionnées.Sinon, créez un objet d' COleDataSource pour les données.
Appelez la fonction membre d' CopyToClipboard de l'élément sélectionné.
Si l'utilisateur a choisi une opération de coupe 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 OnEditCut et OnEditCopy fonctionne dans les exemples de liaison et incorporation d'objets MFC OCLIENT et HIERSVR.Notez que ces exemples contiennent un pointeur vers les données actuellement sélectionnées, donc l'étape 1 est déjà terminée.
Coller des données
Coller des données est plus complexe que la copiant parce que vous devez choisir le format à utiliser en insérant des données dans votre application.
Pour coller les données du presse-papiers
Dans votre classe d'affichage, implémentez OnEditPaste pour gérer des utilisateurs sélectionnant l'option de collage du menu Edition.
Dans la fonction d' OnEditPaste , créez un objet d' COleDataObject et appelez sa fonction membre d' AttachClipboard pour lier cet objet aux données dans le presse-papiers.
Appelez COleDataObject::IsDataAvailable pour vérifier si un format particulier est disponible.
Sinon, vous pouvez utiliser COleDataObject::BeginEnumFormats pour rechercher d'autres formats jusqu'à ce que vous trouviez un plus adapté à votre application.
Exécutez le cadre de le format.
Pour obtenir un exemple de la façon dont cela fonctionne, consultez l'implémentation de fonctions membres d' OnEditPaste dans les classes d'affichage définies dans les exemples de liaison et incorporation d'objets MFC OCLIENT et HIERSVR.
Conseil |
---|
Le principal avantage de séparer l'opération de coller dans leur propre fonction est que le même code de collage peut être utilisé lorsque les données sont déplacées dans votre application pendant une opération de glisser-déplacer.Comme d'OCLIENT et HIERSVR, votre fonction d' OnDrop peut également appeler DoPasteItem, la réutilisabilité du code écrit pour implémenter des opérations de copier-coller. |
Pour gérer l'option spéciale de collage 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