Τρόπος αυτοματοποίησης του PowerPoint, χρησιμοποιώντας το Visual C++ 5.0 ή Visual C++ 6.0 με το Microsoft Foundation Classes

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 222960 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο περιγράφει τον τρόπο αυτοματοποίησης του Microsoft PowerPoint, χρησιμοποιώντας το Visual C++ 5.0 ή Visual C++ 6.0 με το Microsoft Foundation Classes (MFC).

Περισσότερες πληροφορίες

Χρησιμοποιώντας αυτοματισμού στο PowerPoint, μπορείτε να με προγραμματισμό εκτύπωσης, εμφάνιση διαφανειών και κάνετε τις περισσότερες από τις ενέργειες που μπορείτε να κάνετε με δυνατότητα αλληλεπίδρασης. Ακολουθήστε τα παρακάτω βήματα για να δημιουργήσετε και να εκτελέσετε το παράδειγμα αυτοματοποίησης:
  1. Για να δημιουργήσετε ένα νέο έργο MFC EXE βασίζεται στο παράθυρο διαλόγου.
  2. Προσθήκη ενός κουμπιού για το παράθυρο διαλόγου και ένα δείκτη χειρισμού BN_CLICKED για το σκοπό αυτό.
  3. OpenClassWizard(Ctrl + W), κάντε κλικ στοΑυτοματισμούκαρτέλα, κάντε κλικ στο κουμπίΠροσθήκη κατηγορίας, και επιλέξτεΑπό μια βιβλιοθήκη τύπων.
  4. Μεταβείτε στον κατάλογο όπου εγκαταστήσατε το Office (για παράδειγμα, C:\Program Files\Microsoft Office\Office) και να επιλέξετεMsppt8.olb. Στη βιβλιοθήκη αντικειμένων του PowerPoint για το PowerPoint 2000 ονομάζεται Msppt9.olb. Στη βιβλιοθήκη αντικειμένων του PowerPoint για το PowerPoint 2002 είναι Msppt.olb και βρίσκεται, από προεπιλογή, στο φάκελο c:\Program Files\Microsoft Office\Office10. Στη βιβλιοθήκη αντικειμένων του PowerPoint για Microsoft Office PowerPoint 2003 είναι Msppt.olb και βρίσκεται, από προεπιλογή, στο φάκελο c:\Program Files\Microsoft Office\Office11
  5. Επιλέξτε όλες τις κλάσεις που βρίσκει και κάντε κλικ στο κουμπίOkΓια να επιστρέψετε στο έργο σας. ClassWizard έχει δημιουργηθεί κάποια αυτοματισμού "πρόγραμμα εξομοίωσης κλάσεις" από τη βιβλιοθήκη τύπων του PowerPoint και τη δημιουργία αρχείων Msppt8.h και Msppt8.cpp.
  6. Προσθέστε τον ακόλουθο κώδικα για το δείκτη χειρισμού του κουμπιού:
    // Start PowerPoint.
    _Application app;
    COleException e;
    if(!app.CreateDispatch("Powerpoint.Application", &e)) {
       CString str;
       str.Format("CreateDispatch() failed w/err 0x%08lx", e.m_sc),
       AfxMessageBox(str, MB_SETFOREGROUND);
       return;
    }
    
    // Make it visible.
    app.SetVisible(TRUE);
    
    // Get Presentations collection and add a new presentation.
    Presentations presSet(app.GetPresentations());
    _Presentation pres(presSet.Add(TRUE));
    
    // Get Slides collection and add a new slide.
    Slides slideSet(pres.GetSlides());
    _Slide slide1(slideSet.Add(1, 2));
    
    // Add text to slide, by navigating the slide as follows:
    // slide1.shapes(#).TextFrame.TextRange.Text
    {
       Shapes shapes(slide1.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)1)));
       TextFrame textFrame(shape.GetTextFrame());
       TextRange textRange(textFrame.GetTextRange());
       textRange.SetText("My first slide");
    }
    {
       Shapes shapes(slide1.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)2)));
       TextFrame textFrame(shape.GetTextFrame());
       TextRange textRange(textFrame.GetTextRange());
       textRange.SetText("Automating PowerPoint is easy\r\n"
          "Using Visual C++ is powerful!");
    }
    
    // Add another slide with a chart.
    _Slide slide2(slideSet.Add(2, 5));
    
    // Add text to slide as before.
    {
       Shapes shapes(slide2.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)1)));
       TextFrame textFrame(shape.GetTextFrame());
       TextRange textRange(textFrame.GetTextRange());
       textRange.SetText("Slide 2's topic");
    }
    {
       Shapes shapes(slide2.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)2)));
       TextFrame textFrame(shape.GetTextFrame());
       TextRange textRange(textFrame.GetTextRange());
       textRange.SetText("You can create and use charts "
          "in your PowerPoint slides!");
    }
    
    // Add a chart where the default one was created.
    {
       // First get coordinates of old chart.
       float cTop, cWidth, cHeight, cLeft;
       Shapes shapes(slide2.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)3)));
       cTop = shape.GetTop();
       cWidth = shape.GetWidth();
       cHeight = shape.GetHeight();
       cLeft = shape.GetLeft();
    
       // Delete original chart.
       shape.Delete();
    
       // Now add your own back where old one was.
       Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,
          "MSGraph.Chart", "", 0, "", 0, "", 0));
    }
    
    // Add another slide, with an Organization chart.
    _Slide slide3(slideSet.Add(3, 7));
    
    // Add text to slide as before.
    {
    
       Shapes shapes(slide3.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)1)));
       TextFrame textFrame(shape.GetTextFrame());
       TextRange textRange(textFrame.GetTextRange());
       textRange.SetText("The rest is only limited by your Imagination");
    }
    // Add a chart where the default one was created.
    {
       // First get coordinates of old chart.
       float cTop, cWidth, cHeight, cLeft;
       Shapes shapes(slide3.GetShapes());
       Shape shape(shapes.Item(COleVariant((long)2)));
       cTop = shape.GetTop();
       cWidth = shape.GetWidth();
       cHeight = shape.GetHeight();
       cLeft = shape.GetLeft();
    
       // Delete original chart.
       shape.Delete();
    
       // Now add your own back where old one was.
       // The next line assumes you have the Microsoft OrgChart application
       // installed and registered on your computer.
       Shape tmpShape(shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight,
          "OrgPlusWOPX.4", "", 0, "", 0, "", 0));
    }
    
    // Setup slide show properties.
    for(int i=1; i<=3; i++) {
       _Slide slide(slideSet.Item(COleVariant((long)i)));
       SlideShowTransition sst(slide.GetSlideShowTransition());
       sst.SetEntryEffect(513); // Random.
       sst.SetAdvanceOnTime(TRUE);
       sst.SetAdvanceTime(5.0); // 5-seconds per slide.
    }
    // Prepare and run a slide show.
    {
       SlideShowSettings sss(pres.GetSlideShowSettings());
       sss.SetShowType(3); // Kiosk.
       sss.SetLoopUntilStopped(TRUE);
       sss.SetRangeType(1); // Show all.
       sss.SetAdvanceMode(2); // Use slide timings.
       SlideShowWindow ssw(sss.Run()); // Run show.
    }
    
    // Sleep so user can watch slide show.
    ::Sleep(15000);
    
    // Tell PowerPoint to quit.
    app.Quit();
    					
  7. Προσθέστε τις ακόλουθες γραμμές ακριβώς πριν από την υλοποίηση του δείκτη χειρισμού του κουμπιού:
    #include "msppt8.h" //msppt9.h for PowerPoint 2000, msppt.h for PowerPoint 2002 and PowerPoint 2003
    
    // Ole initialization class.
    class OleInitClass {
    public:
       OleInitClass() {
          OleInitialize(NULL);
       }
       ~OleInitClass() {
          OleUninitialize();
       }
    };
    // This global class calls OleInitialize() at
    // application startup, and calls OleUninitialize()
    // at application exit.
    OleInitClass g_OleInitClass;
    					
  8. Μεταγλώττιση και εκτέλεση.

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με την αυτοματοποίηση εφαρμογών του Microsoft Office από το Visual C++, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
196776Γραφείο αυτοματισμού με Visual C++

Ιδιότητες

Αναγν. άρθρου: 222960 - Τελευταία αναθεώρηση: Πέμπτη, 6 Οκτωβρίου 2011 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
Λέξεις-κλειδιά: 
kbautomation kbhowto kbmt KB222960 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:222960

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com