Condividi tramite


Appunti: Mediante gli Appunti di Windows

In questo argomento viene descritto come utilizzare gli Appunti di Windows standard API in un'applicazione MFC.

La maggior parte delle applicazioni per windows supportano il taglio o di copia negli Appunti di Windows e incollare dati dagli Appunti.I formati di dati degli Appunti variano tra le applicazioni.Il framework supporta solo un numero limitato di formati degli Appunti per un numero limitato delle classi.In genere si distribuiranno i controlli Appunti-correlati — tagliare, copiare e incollare — scegliere del menu Modifica per la visualizzazione.La libreria di classi definisce gli ID di comando per questi controlli: ID_EDIT_CUT, ID_EDIT_COPYe ID_EDIT_PASTE.Le richieste di riga del messaggio sono definite.

Messaggi e controlli in Framework viene illustrato come gestire i comandi di menu nell'applicazione eseguendo il mapping del comando di menu a una funzione di gestione.Finché l'applicazione non definisce le funzioni di gestione degli Appunti i comandi del menu Modifica, restano disattivata.Per scrivere funzioni di gestione per il ritaglio e i comandi di copia, selezione di utilizzo nell'applicazione.Per scrivere una funzione di gestione per il comando Incolla, eseguire una query sugli Appunti per verificare se contengono dati in un formato che l'applicazione può accettare.Ad esempio, per attivare il comando di copia, è possibile scrivere un gestore simile al seguente:

void CMyListView::OnEditCopy()
{
   if ( !OpenClipboard() )
   {
      AfxMessageBox( _T("Cannot open the Clipboard") );
      return;
   }
   // Remove the current Clipboard contents
   if( !EmptyClipboard() )
   {
      AfxMessageBox( _T("Cannot empty the Clipboard") );
      return;
   }
   // Get the currently selected data
   HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
   strcpy_s((char*)hGlob, 64, "Current selection\r\n");
   // For the appropriate data formats...
   if ( ::SetClipboardData( CF_TEXT, hGlob ) == NULL )
   {
      CString msg;
      msg.Format(_T("Unable to set Clipboard data, error: %d"), GetLastError());
      AfxMessageBox( msg );
      CloseClipboard();
      GlobalFree(hGlob);
      return;
   }
   CloseClipboard();
}

Taglia, copia e i controlli e sono significativi solo in determinati contesti.Taglia e i comandi di copia deve essere abilitata solo quando viene selezionato un elemento e il comando Incolla solo quando un elemento è negli Appunti.È possibile fornire questo comportamento definendo le funzioni del gestore aggiornamento che abilitano o disabilitano questi controlli a seconda del contesto.Per ulteriori informazioni, vedere Come aggiornare gli oggetti dell'interfaccia utente.

La libreria MFC supporta gli Appunti all'editazione di testo con le classi di CEditView e di CEdit .Le classi OLE anche semplificano la distribuzione delle operazioni relative agli Appunti che includono gli elementi OLE.Per ulteriori informazioni sulle classi OLE, vedere Appunti: Utilizzando il meccanismo di Appunti OLE.

Implementando altri comandi del menu Modifica, come undo (ID_EDIT_UNDO) e ripetizione (ID_EDIT_REDO), viene passata all'utente.Se l'applicazione non supporta questi controlli, può accadere eliminarli dal file di risorse utilizzando gli editor di risorse di Visual C++.

Scegliere l'argomento su cui visualizzare maggiori informazioni

Vedere anche

Concetti

Appunti