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 COleClientItem
bir 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
Henüz orada değilse, uygulamanızın
InitInstance
üye işlevineAfxOleInit
bir çağrı ekleyin. Ole kitaplıklarını başlatmak için bu çağrı gereklidir.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.Görünüm sınıfınızın WM_CREATE iletisini işleyen işlevinden (genellikle
OnCreate
), yeni üye değişkenininRegister
ü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.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ızdaCOleDropTarget
bu 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ı DoDragDrop yaptı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