Aracılığıyla paylaş


Kapasayıcılar: Bir Kapsayıcıyı Uygulama

Uyarı

Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

Bu makale, bir kapsayıcıyı uygulama prosedürünü özetlemekte ve sizi kapsayıcıları uygulamak hakkında daha ayrıntılı açıklamalar sağlayan diğer makalelere yönlendirmektedir. Ayrıca uygulamak isteyebileceğiniz bazı isteğe bağlı OLE özelliklerini ve bu özellikleri açıklayan makaleleri listeler.

CWinApp sınıfından türetilmiş sınıfınızı hazırlamak için

  1. Üye işlevinde AfxOleInit çağırarak OLE kitaplıklarını başlatın.

  2. CDocTemplate::SetContainerInfo öğesini InitInstance içinde arayarak eklenmiş bir öğe yerinde etkinleştirildiğinde kullanılacak menü ve hızlandırıcı kaynaklarını atayın. Bu konu hakkında daha fazla bilgi için bkz . Etkinleştirme.

Bu özellikler, bir kapsayıcı uygulaması oluşturmak için MFC Uygulama Sihirbazı'nı kullandığınızda sizin için otomatik olarak sağlanır. Bkz. MFC EXE Programı Oluşturma.

Görünüm sınıfınızı hazırlamak için

  1. Seçili öğelere yönelik bir işaretçi veya birden çok seçimi destekliyorsanız işaretçi listesi tutarak seçili öğeleri izleyin. İşlevinizin OnDraw tüm OLE öğelerini çizmesi gerekir.

  2. Kendisine iletilen öğenin şu anda seçili olup olmadığını denetlemek için IsSelected'yı geçersiz kılın.

  3. OnInsertObject iletişim kutusunu görüntülemek için bir ileti işleyicisi uygulayın.

  4. Görünümden odağı yerinde etkin OLE olarak eklenmiş bir öğeye aktarmak için bir ileti işleyicisi uygulayın.

  5. OnSize OLE gömülü bir öğeye, bulunduğu görünümün boyutundaki değişikliği yansıtacak şekilde dikdörtgenini değiştirmesi gerektiğini bildiren bir ileti işleyicisi uygulayın.

Bu özelliklerin uygulanması bir uygulamadan diğerine önemli ölçüde değiştiğinden, uygulama sihirbazı yalnızca temel bir uygulama sağlar. Uygulamanızın düzgün çalışması için bu işlevleri özelleştirmeniz gerekecektir. Bunun bir örneği için bkz. CONTAINER örneği.

Eklenmiş ve bağlı öğeleri işlemek için

  1. COleClientItem'den bir sınıf türet. Bu sınıfın nesneleri, OLE belgenize eklenmiş veya bunlara bağlanmış öğeleri temsil eder.

  2. OnChange, OnChangeItemPosition ve OnGetItemPosition'yi geçersiz kılın. Bu işlevler ekli ve bağlı öğeleri boyutlandırma, konumlandırma ve değiştirme işlemlerini işler.

Uygulama sihirbazı, sizin için sınıfı türetecektir, ancak büyük olasılıkla OnChange ve önceki yordamda 2. adımda onunla birlikte listelenen diğer işlevleri de geçersiz kılmanız gerekebilir. Bu işlevler bir uygulamadan diğerine farklı şekilde uygulandığından, iskelet uygulamaların çoğu için özelleştirilmesi gerekir. Bunun örnekleri için bkz . DRAWCLI ve CONTAINER MFC örnekleri.

OLE'yi desteklemek için kapsayıcı uygulamasının menü yapısına bir dizi öğe eklemeniz gerekir. Bunlar hakkında daha fazla bilgi için Menüler ve Kaynaklar: Kapsayıcı Eklentileri'ne başvurun.

Kapsayıcı uygulamanızda aşağıdaki özelliklerden bazılarını da desteklemek isteyebilirsiniz:

  • Katıştırılmış öğeyi düzenlerken yerinde etkinleştirme.

    Daha fazla bilgi için bkz . Etkinleştirme.

  • Bir sunucu uygulamasından seçimi sürükleyip bırakarak OLE öğelerinin oluşturulması.

    OLE sürükle ve bırak hakkında daha fazla bilgi edinmek için, bkz.

  • Katıştırılmış nesnelere veya karma kapsayıcı/sunucu uygulamalarına bağlantılar.

    Daha fazla bilgi için bkz . Kapsayıcılar: Gelişmiş Özellikler.

Ayrıca bakınız

Konteynerler
Kapsayıcılar: İstemci Öğeleri