Compartir a través de


Portapapeles: Copiar y pegar datos

Este tema describe el trabajo mínimo necesario implementar copiar y pegar desde el portapapeles en la aplicación OLE. Se recomienda leer los temas de Objetos de datos y orígenes de datos (OLE) antes de continuar.

Antes de implementar copiar o pegar, primero debe proporcionar funciones para controlar la copia, las opciones corta, y pegue en el menú Edición.

Copiar o datos reduciendo

Para copiar datos en el portapapeles

  1. Determine si los datos se copiará es datos nativos o es un elemento incrustado o vinculado.

    • Si se inserta o se vincula los datos, obtenga un puntero al objeto de COleClientItem se ha seleccionado que.

    • Si los datos son nativo y la aplicación es un servidor, cree un nuevo objeto derivado de COleServerItem que contiene los datos seleccionados. Si no, cree un objeto de COleDataSource para los datos.

  2. Llame a la función miembro de CopyToClipboard del elemento seleccionado.

  3. Si el usuario eligió una operación de cortar en lugar de una operación de copia, elimine los datos seleccionados de la aplicación.

Para ver un ejemplo de esta secuencia, vea OnEditCut y OnEditCopy funciona en los programas de ejemplo de OLE OCLIENT y HIERSVRMFC. Observe que estos ejemplos mantienen un puntero a los datos seleccionados actualmente, por lo que el paso 1 ya se ha completado.

Datos de pegar

Pegar datos es más complicado que copiándolo porque necesita elegir el formato para utilizar en pegar los datos en la aplicación.

Para pegar datos del portapapeles

  1. En la clase de vista, implementar OnEditPaste para controlar los usuarios que elija la opción de pegar el menú Edición.

  2. En función de OnEditPaste , cree un objeto de COleDataObject y llame a su función miembro de AttachClipboard para vincular este objeto a los datos en el portapapeles.

  3. Llame a COleDataObject::IsDataAvailable para comprobar si un formato determinado está disponible.

    Como alternativa, puede utilizar COleDataObject::BeginEnumFormats para buscar otros formatos hasta encontrar uno adecuado más a la aplicación.

  4. Realice pegar de formato.

Para obtener un ejemplo de cómo funciona esto, vea la de las funciones miembro de OnEditPaste en las clases de vista definidas en los programas de ejemplo de OLE OCLIENT y HIERSVRMFC.

Sugerencia

La ventaja principal de separar la operación de pegar en su propia función es que el mismo código de pegar puede utilizar cuando se colocan los datos en la aplicación durante una operación de arrastrar y colocar.Como en OCLIENT e HIERSVR, la función de OnDrop también puede llamar DoPasteItem, reutilizar el código escrito a las operaciones de pegar de implementan.

Para controlar la opción de Pegado especial en el menú Edición, vea el tema Cuadros de diálogo de OLE.

¿Sobre qué desea obtener más información?

Vea también

Referencia

Portapapeles: Usar el mecanismo del Portapapeles de OLE