Aracılığıyla paylaş


Pano: Windows Pano kullanma

Bu konu, mfc uygulamanız içinde standart Windows Pano API kullanmayı açıklamaktadır.

Kesme veya verileri Pano'ya kopyalama ve yapıştırma Pano'dan veri çoğu Windows uygulamaları destekler.Pano veri formatları, uygulamalar arasında farklılık gösterir.Framework sınıfları için sınırlı sayıda sınırlı sayıda Pano biçimlerini destekler.Pano ilgili komutları normal olarak uygulayacağınızı — Kes, Kopyala ve Yapıştır — Görünümü Düzenle menüsünde.Bu komutların komut kimliklerini sınıf kitaplığı tanımlar: ID_EDIT_CUT, ID_EDIT_COPY, ve ID_EDIT_PASTE.Kendi ileti satırı istemleri de tanımlanmıştır.

İletilerin ve komutlar çerçevesindeki menü komutu için bir işleyici işlevi eşleyerek uygulamanızdaki menü komutları işlemek nasıl açıklar.Uygulama işleyicisi işlevler Pano komutları için Düzen menüsünden tanımlamaz sürece devre dışı kalır.Kes ve Kopyala komutları için işleyici iþlevleri yazmanýz için uygulamanızda seçime uygular.Yapıştır komutu için bir işleyici işlevi yazmak için uygulamanızın kabul edebileceği bir biçimde veri içerip içermediğini görmek için Pano sorgu.Örneğin, Kopyala komutu etkinleştirmek için bir işleyici aşağıdaki gibi yazarsınız:

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();
}

Kes, Kopyala ve Yapıştır komutları yalnızca belirli bağlamlarda anlamlı olur.Kes ve Kopyala komutları, yalnızca seçili bir şey, ve Yapıştır komutu, yalnızca bir konuda Pano'ya olduğunda etkinleştirilmelidir.Etkinleştirmek veya devre dışı içerik türüne göre bu komutları güncelleştirme işleyicisi işlevler tanımlayarak bu davranışı sağlayabilir.Daha fazla bilgi için bkz: güncelleştirmesi kullanıcı arabirimi nesneleri nasıl.

Microsoft Foundation Class Library Pano ile metin düzenleme desteği CEdit ve CEditView sınıfları.ole sınıfı ayrıca ole öğeleri içeren uygulama Pano işlemlerini basitleştirin.ole sınıfı hakkında daha fazla bilgi için bkz: Pano: ole Pano mekanizmasını kullanarak.

Diğer uygulama, geri alma gibi menü komutlarını Düzenle (ID_EDIT_UNDO) ve Yinele (ID_EDIT_REDO), sizin için de sol.Uygulamanız bu komutları desteklemiyorsa, Visual C++ kaynak Düzenleyicileri kullanarak kaynak dosyasından kolayca silebilirsiniz.

Hangi konu hakkında daha fazla bilgi edinmek istiyorsunuz?

Ayrıca bkz.

Kavramlar

Pano