Appunti: copiare e incollare dati

In questo argomento viene descritto il lavoro minimo necessario per implementare la copia negli Appunti e incollarlo dagli Appunti nell'applicazione OLE. Prima di procedere, è consigliabile leggere gli argomenti Oggetti dati e Origini dati (OLE ).

Prima di poter implementare la copia o incolla, è necessario fornire le funzioni per gestire le opzioni Copia, Taglia e Incolla dal menu Modifica.

Copia o taglio di dati

Per copiare i dati negli Appunti

  1. Determinare se i dati da copiare sono dati nativi o è un elemento incorporato o collegato.

    • Se i dati sono incorporati o collegati, ottenere un puntatore all'oggetto COleClientItem selezionato.

    • Se i dati sono nativi e l'applicazione è un server, creare un nuovo oggetto derivato da COleServerItem contenente i dati selezionati. In caso contrario, creare un COleDataSource oggetto per i dati.

  2. Chiamare la funzione membro dell'elemento CopyToClipboard selezionato.

  3. Se l'utente ha scelto un'operazione Taglia anziché un'operazione di copia, eliminare i dati selezionati dall'applicazione.

Per un esempio di questa sequenza, vedere le OnEditCut funzioni e OnEditCopy nei programmi di esempio OLE MFC OCLIENT e HIERSVR. Si noti che questi esempi mantengono un puntatore ai dati attualmente selezionati, quindi il passaggio 1 è già completo.

Incolla dei dati

Incollare i dati è più complicato rispetto alla copia perché è necessario scegliere il formato da usare incollare i dati nell'applicazione.

Per incollare dati dagli Appunti

  1. Nella classe di visualizzazione implementare OnEditPaste per gestire gli utenti che scelgono l'opzione Incolla dal menu Modifica.

  2. OnEditPaste Nella funzione creare un COleDataObject oggetto e chiamare la relativa AttachClipboard funzione membro per collegare questo oggetto ai dati negli Appunti.

  3. Chiamare COleDataObject::IsDataAvailable per verificare se è disponibile un formato specifico.

    In alternativa, è possibile usare COleDataObject::BeginEnumFormats per cercare altri formati finché non si trova una più adatta all'applicazione.

  4. Eseguire l'incolla del formato.

Per un esempio del funzionamento, vedere l'implementazione delle OnEditPaste funzioni membro nelle classi di visualizzazione definite nei programmi di esempio OLE MFC OCLIENT e HIERSVR.

Suggerimento

Il vantaggio principale della separazione dell'operazione incolla nella propria funzione è che lo stesso codice incolla può essere usato quando i dati vengono rilasciati nell'applicazione durante un'operazione di trascinamento della selezione. Come in OCLIENT e HIERSVR, la OnDrop funzione può anche chiamare DoPasteItem, riutilizzando il codice scritto per implementare le operazioni Incolla.

Per gestire l'opzione Incolla speciale nel menu Modifica, vedere l'argomento Finestre di dialogo in OLE.

Cosa vuoi sapere di più su

Vedi anche

Appunti: uso del meccanismo degli Appunti OLE