Makale numarası: 169505 - Son Gözden Geçirme: 19 Ocak 2007 Cuma - Gözden geçirme: 3.7

Bir MFC Automation istemcisi PowerPoint'in oluşturma hakkında

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, en az Microsoft Foundation Classes (MFC) kullanarak Microsoft PowerPoint nesne modeli işlemek için bir Otomasyon denetleyicisi oluşturmak için gereken adımları sağlar.

Bu makalede, bir öğretici kılavuz tasarlanmıştır. Öğretici aşağıdaki varsayımlar yapar:
  • Visual C++ ile alışık olduğunuz.
  • MFC uygulamaları nasıl yazılır ile sahibiyseniz.
  • Microsoft PowerPoint geliştirme makinenize var.
  • Microsoft Visual C++ geliştirme makinenizde yüklü olması.
Oluşturduğunuz örnek uygulama menü seçenekleri, PowerPoint davranışını denetlemek için kullanır. Nasıl öğretici gösterir.
  • PowerPoint 97 Nesne Kitaplığı'nı (msppt8.olb), <a2>PowerPoint 2000 Nesne Kitaplığı'nı (msppt9.olb)</a2> veya <a4>PowerPoint 2002 Nesne Kitaplığı'nı (msppt.olb) COleDispatchDriver sarmalayıcı sınıfları oluşturmak için kullanın.
  • Uygulama nesnesine bağlanın.
  • Sunular oluşturun.
  • Slayt oluşturun.
  • Şekiller, slayttaki oluşturun.
  • Slayt Gösterisi'ni çalıştırın.
Not: Bu makalede, Visual C++ MFC uygulaması PowerPoint nesne modeli denetleme hakkında temel bilgileri göstermek için tasarlanmıştır. Oluşturulan kod üretim kalitesinde olması amaçlanmıştır. Kodlama teknikleri mümkün olduğunca basitleştirmek için seçildi.

Not: Microsoft Foundation Classes kullanmaya alternatif, Visual C++ sınıfları bir tür kitaplığı içeriğini dönüştürmek için Visual C++ Derleyici <a1>alma</a1> özelliğini kullanabilirsiniz.

Alma yönergesini hakkında daha fazla bilgi için lütfen çevrimiçi belgelerine bakın. Bir kod örneği için lütfen COMEXCEL örneğe bakın.

Daha fazla bilgi

Microsoft örnekleri, Visual Basic for Applications ve Visual C++ yordamlar yalnızca gösterim için da dahil ancak bunlarla sınırlı olmamak satılabilirlik ve/veya belirli bir amaca uygunluk zımni hiçbir garanti olmamak kaydıyla, örtülü veya açık garanti sağlar. Bu makalede, Visual C++ yordamlar "olduğu gibi" sağlanmıştır ve Microsoft, tüm durumlarda kullanılabilir garanti etmez. Microsoft destek mühendisleri, belirli bir makroyu işlevselliğinin açıklanmasına yardımcı olabilir, ancak ek işlevsellik sağlamak amacıyla bu örnekleri değiştirmezler veya özel gereksinimlerinizi karşılamak için makrolar oluşturun yardımcı olur. Sınırlı programlama deneyiminiz varsa, Microsoft Solution sağlayıcılarından birini başvurun isteyebilirsiniz. Çözüm sağlayıcıları, çok çeşitli özel makroları oluşturmak gibi ücret-tabanlı hizmetler sunar. Microsoft Solution hakkında daha fazla bilgi için (800) 426-9400 adresindeki Microsoft Müşteri bilgi hizmeti sağlayıcıları, arayın.

1. Adım: ile AppWizard uygulama çerçevesi oluşturun...

  1. Microsoft Visual C++ sürüm 5. 0'ı başlatın.
  2. MFC AppWizard yeni bir proje oluşturun. Bu işlem gerçekleşir:
    1. Dosya menüsünde Yeni'yi tıklatın.
    2. Seçilmemişse, Projects sekmesini tıklatın.
    3. MFC AppWizard (exe)</a0> proje tipini tıklatın.
    4. Proje adı alanında projeniz için bir ad yazın. Bu adımlarda, adı TestPPT kullandığınız varsayılmaktadır.
    5. MFC AppWizard başlatmak için Tamam'ı tıklatın.
  3. SDI uygulama OLE Otomasyonu desteğiyle oluşturma. Bu işlem gerçekleşir:
    1. Tek bir belgeyi tıklatın ve sonra Next'i (ileri) tıklatın.
    2. Yeniden ileri'yi tıklatın. Bu örnek destek veritabanı yoktur.
    3. ActiveX denetimleri</a1> onay kutusu seçimini kaldırın ve sonra <a0>Otomasyon</a0> onay kutusunu seçin. Son'u (Bu örnekte AppWizard içinde diğer adımları özelleştirmek için gerekmez.)
    4. Skeleton projesi belirtimleri kabul etmek için Tamam'ı tıklatın.

Adım 2: Msppt8.olb (PowerPoint 97), <a1>Msppt9.olb</a1> (PowerPoint 2000) veya <a1>Msppt.olb</a1> (PowerPoint 2002) tabanlı COleDispatchDriver sarıcı sınıflar oluşturma

  1. Görünüm menüsünde ClassWizard'ı tıklatın.
  2. Add class düğmesini tıklatın ve aşağı açılan listede bir tür kitaplığı ilk'i tıklatın.
  3. Tür kitaplığı iletişim kutusundan alma, PowerPoint 97'de, PowerPoint 2000 veya PowerPoint 2002'de (.olb dosyası Office klasöründe bulunur) Msppt.olb Msppt9.olb dosyaya Msppt8.olb dosyasının konumuna gidin. Microsoft Office'in varsayılan yükleme seçeneklerini seçtiyseniz, yolu aşağıdaki gibi görünmelidir:
    C:\Program Files\Microsoft Office\Office
  4. Msppt8.olb/Msppt9.olb/Msppt.olb'ı tıklatın ve sonra da Aç'ı tıklatın.
  5. Uygulamanız kullanmak istediğiniz sınıfı seçin.

    Not: Msppt8.olb/Msppt9.olb/Msppt.olb dosyasından ek sınıfları ekleyebilir, herhangi bir anda bu nedenle şimdi yaptığınız seçimlerin kalıcı değildir.

    Için (birden çok sınıf'ı seçin, denetim tuşu basılı tutun ve istediğiniz sınıfları seçmek için), aşağıdaki sınıfları bu Eğitmeni seçin:
        - _Application
        - SlideShowSettings
        - Presentations
        - Slides
        - _Slide
        - Shapes
        - _Presentation
    						
    yukarıdaki sınıfları seçme tamamladıktan ve MFC ClassWizard kapatmak için Tamam'ı tıklatın, Tamam'ı tıklatın.

3. Adım: PowerPoint menü oluştur

Bir PowerPoint menü MFC uygulaması için aşağıdaki seçenekleri ile oluşturun:
  • PowerPoint'i başlatın
  • Sunu oluşturma
  • Slayt oluşturma
  • Şekil ekleme
  • Gösterisi'ni başlatma
  • PowerPoint'nden çıkın.
Bu işlem gerçekleşir:
  1. Çalışma alanınızı <a1>ResourceView</a1> sekmesini tıklatın.
  2. TestPPT kaynakları klasörü açın.
  3. Menü klasörü açın.
  4. IDR_MAINFRAME kaynak'ı çift tıklatın.
  5. Metin, Yardım menüsünden sağında bulunan dikdörtgen</a1> çift tıklatın. Bu menü öğesi özellikleri iletişim kutusunu açar.
  6. Genel sekmeyi tıklatıp başlık alanına aşağıdaki metni yazarak PowerPoint menü oluştur: PowerPoint

  7. PowerPoint altındaki dikdörtgeni çift ve aşağıdaki metni başlık alanına PowerPoint Başlat menü seçeneği oluşturun: PowerPoint Başlat

  8. Sunu Oluştur</a1> menü seçeneğini Başlat PowerPoint altındaki dikdörtgeni çift ve başlık alanına aşağıdaki metni yazarak oluşturun: Sunu oluşturma

  9. Sunu oluştur altındaki dikdörtgeni çift ve aşağıdaki metni başlık alanına oluştur slayt menü seçeneği oluşturun: Create slayt

  10. Oluştur Slayt altındaki dikdörtgeni çift ve aşağıdaki metni başlık alanına yazmak için <a0>Şekil Ekle</a0> menü seçeneği oluşturun: Şekil ekleme

  11. Şekil Ekle altında dikdörtgeni çift ve aşağıdaki metni başlık alanına yazmak için <a0>Slayt Gösterisi</a0> menü seçeneği ve onun alt menüleri oluşturun: Gösterisi Başlat

  12. Slayt gösterisi altında dikdörtgeni çift ve aşağıdaki metni başlık alanına Çık PowerPoint menü seçeneği oluşturun: PowerPoint Çık

  13. Menü öğesi özellikleri iletişim kutusunu kapatın.

Adım 4: Seçenek menüsü işleyicileri için Kancaları oluştur

  1. ResourceView içinde sağ tıklatın, Başlat menüsü seçeneğini PowerPoint ClassWizard'ı tıklatın.
  2. COMMAND iletiyi seçin ve işlev Ekle'yi tıklatın. Bu üye işlev Ekle iletişim kutusunu. Not açar: Proje adı TestPPT ve sınıf adı CMainFrame emin olun.
  3. Kaynak KIMLIĞI adı değişmedi koşuluyla, işleyicinin adını olmalıdır:
          OnPowerpointStartpowerpoint
    					
    bu adı kabul etmek için Tamam'ı tıklatın.
  4. 1'Den kalan menü seçenekleri için işleyiciler oluşturmak için 3'e kadar olan adımları yineleyin. Tüm işleyiciler oluşturduktan sonra ClassWizard kapatmak için Tamam'ı tıklatın.

Adım 5: komut işleyicisi kodu ekleyin...

  1. Uygulama nesnesi tutulacağı bir üye değişkeni oluşturmak için şu adımları izleyin ve bitirdiğinizde Tamam'ı tıklatın:
    1. Çalışma alanınızı <a1>ClassView</a1> sekmesini tıklatın.
    2. TestPPT sınıfları açın.
    3. CMainFrame sınıfı simgesini sağ tıklatın ve Ekle'yi tıklatın bağlam menüsünde üye değişkeni.
    4. Aşağıdaki bilgileri <a2>Ekle</a2> üye girin değişken iletişim kutusuna ve bitirdiğinizde Tamam'ı tıklatın:
              Variable Type: _Application
              Variable Declaration: m_ppt
              Access: Private
    					
  2. Uygulama nesnesine bağlanmaya CMainFrame sınıf kurucusunu değiştirin. Bitirdiğiniz zaman, CMainFrame kurucu aşağıdaki gibi görünmelidir:
          CMainFrame::CMainFrame()
          {
             // Create an instance of the PowerPoint application.
             m_ppt.CreateDispatch("PowerPoint.Application");
          }
    					
  3. Komut işleyici için aşağıdaki kodu ekleyin: PowerPoint Başlat:
          void CMainFrame::OnPowerpointStartpowerpoint()
    
          {
    
             // Check if the IDispatch connection exists with PowerPoint,
             // if not create one.
             if (m_ppt.m_lpDispatch == NULL) {
    
                // Create IDispatch connection to PowerPoint.
                m_ppt.CreateDispatch("PowerPoint.Application");
    
             };
    
             // Bring the PowerPoint application to the front.
             m_ppt.Activate();
    
          }
    					
    Gösterisi Başlat:

          void CMainFrame::OnPowerpointStartslideshow()
          {
    
             _Presentation oPresentation;
             SlideShowSettings oShow;
    
             // Attach to the Active Presentation.
             oPresentation.AttachDispatch(m_ppt.GetActivePresentation());
    
             // Attach to the slide-show settings.
             oShow.AttachDispatch(oPresentation.GetSlideShowSettings());
    
             // Run the slide show.
             oShow.Run();
    
          }
    					
    PowerPoint'nden çıkın:

          void CMainFrame::OnPowerpointQuitpowerpoint()
          {
             // Check if PowerPoint is still running. If
             // PowerPoint is not running, quit PowerPoint
             // and release the dispatch pointer.
             if(m_ppt.m_lpDispatch != NULL) {
    
                // Quit PowerPoint. Note, the Quit command exits
                // PowerPoint without displaying any dialog boxes. So,
                // any unsaved data is lost.
                m_ppt.Quit();
    
                // Free the dispatch. This sets m_lpDispatch to NULL.
    
                m_ppt.ReleaseDispatch();
    
    
             };
          }
    					
    Slayt oluşturma:

          void CMainFrame::OnPowerpointCreateslide()
          {
             // Connect to the active presentation. There is no error trapping.
             // If the active presentation the framework traps
             // the error and displays a message box.
             _Presentation ActivePresentation(m_ppt.GetActivePresentation());
    
             // Connect to the slides collection.
             Slides oSlides(ActivePresentation.GetSlides());
    
             // This constant is defined in the PowerPoint Object model.
             // You can use the Object Browser, with Visual Basic Editor
             // (VBE), to look up the different constant values.
             const ppLayoutTitleOnly = 11;
    
             // Add a new slide to the presentation. This code adds the new
             // slide to the end of the presentation.
             oSlides.Add(oSlides.GetCount() + 1l, ppLayoutTitleOnly);
          }
    					
    Sunusu oluşturun:

          void CMainFrame::OnPowerpointCreatepresentation()
          {
    
             Presentations PresCollection;
    
             // Make sure there is a dispatch pointer for PowerPoint.
             if(m_ppt.m_lpDispatch == NULL) {
    
                // Display a message indicating that PowerPoint is not running.
                MessageBox("PowerPoint is not running.", "Start PowerPoint");
             } else {
    
                // Bring PowerPoint to the front.
                m_ppt.Activate();
    
                // Attach the presentations collection to the PresCollection
                // variable.
                PresCollection.AttachDispatch(m_ppt.GetPresentations());
    
                // Create a new presentation.
                PresCollection.Add(1);
             };
          }
    					
    Şekli ekleme:

          void CMainFrame::OnPowerpointAddshape()
          {
    
             // Connect to the active presentation object.
             _Presentation ActivePresentation(m_ppt.GetActivePresentation());
    
    
             // Connect to the Slides collection object.
             Slides oSlides(ActivePresentation.GetSlides());
    
             // Connect to the first slide in the presentation.
             long lIndex = 1;
             COleVariant SlideNumber(lIndex);
             _Slide oSlide(oSlides.Item(SlideNumber));
    
             // Connect to the Shapes collection.
    
             Shapes oShape(oSlide.GetShapes());
    
             // Create the heart shape on the slide.
             const long msoShapeHeart = 21;
             float l = 50,t = 150,w = 350,h = 350;
             oShape.AddShape(msoShapeHeart, l, t, w, h);
          }
    					

6. Adım: Oluşturma ve bu uygulamayı çalıştırma

  1. Yapı) menüsünde, TestPPT.exe oluştur) tıklatın.

    Not: ilk kez normalden oluşturmak için daha uzun sürer projesi oluşturun. Derleyici proje pre-compiled başlığı (.pch) nedeni budur. .Pch, projenizin, yaklaşık dört megabayt boyutunda dosyadır.
  2. Yapı) menüsünde, TestPPT.exe Çalıştır'ı tıklatın. Farklı PowerPoint menüsünde Seçenekler'i seçmeyi deneyin.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
Anahtar Kelimeler: 
kbmt kbprogramming kbhowto kbmacro KB169505 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:169505  (http://support.microsoft.com/kb/169505/en-us/ )