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.
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.
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...
Microsoft Visual C++ sürüm 5. 0'ı başlatın.
MFC AppWizard yeni bir proje oluşturun. Bu işlem gerçekleşir:
Dosya menüsünde Yeni'yi tıklatın.
Seçilmemişse, Projects sekmesini tıklatın.
MFC AppWizard (exe)</a0> proje tipini tıklatın.
Proje adı alanında projeniz için bir ad yazın. Bu adımlarda, adı TestPPT kullandığınız varsayılmaktadır.
MFC AppWizard başlatmak için Tamam'ı tıklatın.
SDI uygulama OLE Otomasyonu desteğiyle oluşturma. Bu işlem gerçekleşir:
Tek bir belgeyi tıklatın ve sonra Next'i (ileri) tıklatın.
Yeniden ileri'yi tıklatın. Bu örnek destek veritabanı yoktur.
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.)
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
Görünüm menüsünde ClassWizard'ı tıklatın.
Add class düğmesini tıklatın ve aşağı açılan listede bir tür kitaplığı ilk'i tıklatın.
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
Msppt8.olb/Msppt9.olb/Msppt.olb'ı tıklatın ve sonra da Aç'ı tıklatın.
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:
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:
Çalışma alanınızı <a1>ResourceView</a1> sekmesini tıklatın.
TestPPT kaynakları klasörü açın.
Menü klasörü açın.
IDR_MAINFRAME kaynak'ı çift tıklatın.
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.
Genel sekmeyi tıklatıp başlık alanına aşağıdaki metni yazarak PowerPoint menü oluştur: PowerPoint
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
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
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
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
Ş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
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
Adım 4: Seçenek menüsü işleyicileri için Kancaları oluştur
ResourceView içinde sağ tıklatın, Başlat menüsü seçeneğini PowerPoint ClassWizard'ı tıklatın.
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.
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.
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.
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");
}
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);
}
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.
Ö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/
)
Bu makaleyi kullanabilmek için kişisel olarak ne kadar çaba harcadınız?
Çok az
Az
Ne Az, Ne Fazla
Fazla
Çok fazla
Bu bilgiyi geliştirmek için ne yapabiliriz?
Gizliliğinizi korumak için, irtibat bilgilerinizi görüşlerinize eklemeyin.
Teşekkür ederiz! Görüşleriniz, destek içeriğimizi geliştirmek amacıyla kullanılacaktır. Daha fazla yardım seçeneği için lütfen, Yardım ve Destek Ana Sayfası’nı ziyaret edin.