Aracılığıyla paylaş


OLE sürükle ve bırak

OLE'nin sürükle ve bırak özelliği öncelikle verileri kopyalamak ve yapıştırmak için bir kısayoldur. Verileri kopyalamak veya yapıştırmak için Pano'yı kullandığınızda, bir dizi adım gerekir. Verileri seçin ve Düzenle menüsünde Kes veya Kopyala'yıseçin. Ardından hedef uygulamaya veya pencereye geçer ve imleci hedef konuma yerleştirirsiniz. Son olarak, menüden Yapıştırmayı Düzenle'yi>seçersiniz.

OLE sürükle ve bırak özelliği, Dosya Yöneticisi sürükle ve bırak mekanizmasından farklıdır. Dosya Yöneticisi yalnızca dosya adlarını işleyebilir ve özellikle dosya adlarını uygulamalara geçirmek için tasarlanmıştır. OLE'de sürükleyip bırakma işlemi çok daha geneldir. Pano'ya yerleştirilebilen tüm verileri sürükleyip bırakmanızı sağlar.

OLE sürükle ve bırak özelliğini kullandığınızda, işlemden iki adımı kaldırırsınız. Verileri kaynak penceresinden ("bırakma kaynağı") seçip hedefe ("bırakma hedefi") sürüklersiniz. Fare düğmesini serbest bırakarak bırakın. İşlem, menü gereksinimini ortadan kaldırır ve kopyalama/yapıştırma dizisinden daha hızlıdır. Tek bir gereksinim vardır: Hem bırakma kaynağı hem de bırakma hedefi açık ve en azından ekranda kısmen görünür olmalıdır.

OLE sürükle ve bırak kullanılarak veriler bir konumdan diğerine kolayca aktarılabilir: Belge içinde, farklı belgeler arasında veya uygulamalar arasında. Bir kapsayıcıda veya sunucu uygulamasında uygulanabilir. Herhangi bir uygulama bir bırakma kaynağı, bırakma hedefi veya her ikisi de olabilir. Bir uygulama hem bırakma kaynağı hem de bırakma hedefi desteği uyguluyorsa, alt pencereler arasında veya tek bir pencere içinde sürükleyip bırakabilirsiniz. Bu özellik uygulamanızın kullanımını çok daha kolay hale getirir.

Veri nesneleri ve veri kaynakları (OLE) makalelerinde, uygulamalarınızda veri aktarımının nasıl uygulanıp uygulanmayları açıklanmaktadır. OCLIENT ve HIERSVR MFC OLE örneklerini incelemek de yararlıdır.

Bırakma kaynağı uygulama

Uygulamanızın sürükle ve bırak işlemine veri sağlamasını sağlamak için bir bırakma kaynağı uygularsınız. Bırakma kaynağının temel uygulaması nispeten basittir. İlk adım, hangi olayların sürükleme işlemine başlayacağını belirlemektir. Önerilen kullanıcı arabirimi yönergeleri, sürükleme işleminin başlangıcını, seçilen verilerin içindeki bir noktada bir WM_LBUTTONDOWN olayı gerçekleştiğinde olduğu gibi tanımlar. MFC OLE örnekleri OCLIENT ve HIERSVR bu yönergeleri izler.

Uygulamanız bir kapsayıcıysa ve seçili veriler bağlı veya eklenmiş türünde COleClientItembir nesneyse, üye işlevini çağırın DoDragDrop . Aksi takdirde, bir COleDataSource nesne oluşturun, seçimle başlatın ve veri kaynağı nesnesinin üye işlevini çağırın DoDragDrop . Uygulamanız bir sunucuysa kullanın COleServerItem::DoDragDrop. Standart sürükle ve bırak davranışını özelleştirme hakkında bilgi için Sürükle ve bırak'ı özelleştirme bölümüne bakın.

DROPEFFECT_MOVE döndürürse DoDragDrop, kaynak belgeden kaynak verileri hemen silin. başka hiçbir dönüş değerinin DoDragDrop bırakma kaynağı üzerinde herhangi bir etkisi yoktur.

Daha fazla bilgi için bkz . OLE veri nesneleri ve veri kaynakları: Oluşturma ve yok etme ve OLE veri nesneleri ve veri kaynakları: Düzenleme.

Bırakma hedefi uygulama

Bırakma hedefinin uygulanması bir bırakma kaynağından biraz daha fazla işlem gerektirse de, yine de nispeten basittir.

OLE bırakma hedefi uygulamak için

  1. Henüz orada değilse, uygulamanızın InitInstance üye işlevine AfxOleInit bir çağrı ekleyin. Ole kitaplıklarını başlatmak için bu çağrı gereklidir.

  2. Uygulamadaki bırakma hedefi olmasını istediğiniz her görünüme bir üye değişkeni ekleyin. Bu üye değişkeni türünde COleDropTarget veya ondan türetilmiş bir sınıf olmalıdır.

  3. Görünüm sınıfınızın WM_CREATE iletisini işleyen işlevinden (genellikleOnCreate), yeni üye değişkeninin Register üye işlevini çağırın. Revoke görünümünüz yok edildiğinde sizin için otomatik olarak çağrılır.

  4. Aşağıdaki işlevleri geçersiz kılın. Uygulamanızda aynı davranışın olmasını istiyorsanız, görünüm sınıfınızda bu işlevleri geçersiz kılın. Yalıtılmış durumlarda davranışı değiştirmek veya pencere dışıCView durumlarda bırakma özelliğini etkinleştirmek istiyorsanız, türetilmiş sınıfınızda COleDropTargetbu işlevleri geçersiz kılın.

    Geçersiz Kıl İzin vermek için
    OnDragEnter Pencerede gerçekleştirilecek bırakma işlemleri. İmleç pencereye ilk girdiğinde çağrılır.
    OnDragLeave Sürükleme işlemi belirtilen pencereden ayrıldığında özel davranış.
    OnDragOver Pencerede gerçekleştirilecek bırakma işlemleri. İmleç pencere boyunca sürüklenirken çağrılır.
    OnDrop Belirtilen pencereye bırakılan verilerin işlenmesi.
    OnScrollBy Hedef pencerede kaydırma için özel davranış gereklidir.

BKZ. MAINVIEW. Bu işlevlerin birlikte nasıl çalıştığını gösteren bir örnek için MFC OLE örneği OCLIENT'nin parçası olan CPP dosyası.

Daha fazla bilgi için bkz . OLE veri nesneleri ve veri kaynakları: Oluşturma ve yok etme ve OLE veri nesneleri ve veri kaynakları: Düzenleme.

Sürükle ve bırak'ı özelleştirme

Sürükle ve bırak özelliğinin varsayılan uygulaması çoğu uygulama için yeterlidir. Ancak bazı uygulamalar bu standart davranışı değiştirmenizi gerektirebilir. Bu bölümde, bu varsayılanları değiştirmek için gereken adımlar açıklanmaktadır. Bileşik belgeleri desteklemeyen uygulamaları bırakma kaynaklarına dönüştürebilmek için bu tekniği kullanabilirsiniz.

Standart OLE sürükle ve bırak davranışını özelleştiriyorsanız veya OLE olmayan bir uygulamanız varsa, verileri içerecek bir COleDataSource nesne oluşturmanız gerekir. Kullanıcı sürükle ve bırak işlemini başlattığında, kodunuzun DoDragDrop sürükle ve bırak işlemlerini destekleyen diğer sınıflar yerine bu nesneden işlevini çağırması gerekir.

İsteğe bağlı olarak, bırakma işlemini denetlemek ve değiştirmek istediğiniz davranış türüne bağlı olarak bazı işlevlerini geçersiz kılmak için bir COleDropSource nesne oluşturabilirsiniz. Bu bırakma kaynağı nesnesi, bu işlevlerin varsayılan davranışını değiştirmek için öğesine geçirilir COleDataSource::DoDragDrop . Bu farklı seçenekler, uygulamanızda sürükle ve bırak işlemlerini destekleme konusunda büyük esneklik sağlar. Veri kaynakları hakkında daha fazla bilgi için Veri Nesneleri ve Veri Kaynakları (OLE) makalesine bakın.

Sürükle ve bırak işlemlerini özelleştirmek için aşağıdaki işlevleri geçersiz kılabilirsiniz:

Geçersiz Kıl Özelleştirmek için
OnBeginDrag siz çağrısı DoDragDropyaptıktan sonra sürükleme işlemi nasıl başlar?
GiveFeedback Farklı bırakma sonuçları için imleç görünümü gibi görsel geri bildirim.
QueryContinueDrag Sürükle ve bırak işleminin sonlandırılması. Bu işlev, sürükleme işlemi sırasında değiştirici anahtar durumlarını denetlemenizi sağlar.

Ayrıca bkz.

OLE
OLE Veri nesneleri ve veri kaynakları
OLE veri nesneleri ve veri kaynakları: Oluşturma ve yok etme
OLE veri nesneleri ve veri kaynakları: Düzenleme
COleClientItem::D oDragDrop
COleDataSource sınıfı
COleDataSource::D oDragDrop
COleDropSource sınıfı
COleDropTarget sınıfı
CView::OnDragLeave