Πώς μπορείτε να εφαρμόσετε θέματα των Windows XP για τα πρόσθετα COM του Office

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

Σε αυτήν τη σελίδα

Περίληψη

Κατά τη δημιουργία ενός προσθέτου COM για το πρόγραμμα σε Microsoft Office (για παράδειγμα, Microsoft Visio), την εμφάνιση που προσθέτου θα συμφωνούν από προεπιλογή την τυπική εμφάνιση του Office. Ωστόσο, με τα Windows XP, μπορείτε να επιλέξετε από ένα πλήθος οπτικά στυλ (ή τα θέματα) για να προσαρμόσετε την εμφάνιση ενός προγράμματος των Microsoft Windows.

Εκτός και αν τα θέματα των Windows ενεργοποιούνται ρητά για ένα πρόσθετο COM, η εμφάνιση του προσθέτου δεν αλλάζει με αυτούς τους συνδυασμούς χρωμάτων, στην αρχή του πρόσθετου για να εμφανίζονται με ημερομηνία ή εκτός συγχρονισμένα με το πρόγραμμα όπου περιέχεται. Με το Microsoft Visual C++ ή το Microsoft Visual Studio .NET γλώσσες, μπορείτε να ενεργοποιήσετε το COM για opt-in για θέματα των Windows.

Όταν ενεργοποιείτε ένα πρόσθετο για τα θέματα των Windows, τα θέματα επηρεάζουν μόνο την εμφάνιση του πρόσθετου. Η λειτουργικότητα του πρόσθετου δεν επηρεάζεται.

Αποποίηση ευθυνών

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας. Ωστόσο, δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.

Microsoft Visual Basic 6.0

Visual Basic 6.0 δεν υποστηρίζουν θέματα. Τα πρόσθετα δεν είναι δυνατή η προσθήκη θέματος με τη χρήση της Visual Basic 6.0.

Microsoft Visual C++ 6.0

Για να χρησιμοποιήσετε το Visual C++ 6.0 για να ενεργοποιήσετε ένα πρόσθετο COM με opt-in με τα Windows XP θέματα, ακολουθήστε τα εξής βήματα:
  1. Δημιουργήστε ένα αρχείο δηλώσεων που περιέχει τις ακόλουθες πληροφορίες. Για να προσαρμόσετε τις πληροφορίες για το συγκεκριμένο πρόσθετο:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
     <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
      <noInherit/>
      <assemblyIdentity 
       processorArchitecture="*" 
       type="win32" 
       name="MyOfficeNetAddin"
       version="1.0.0.0"/>
       <description>My Office Addin built with .Net</description> 
       <dependency optional="yes">                              
        <dependentAssembly>                   
         <assemblyIdentity                 
          type="win32"                
          name="Microsoft.Windows.Common-Controls" 
          version="6.0.1.0"           
          publicKeyToken="6595b64144ccf1df" 
          language="*"                
          processorArchitecture="*"/>
        </dependentAssembly>                  
       </dependency>                             
     </assembly>
    
  2. Κάντε ένα από τα παρακάτω:
    • Συμπεριλάβετε την παρακάτω οδηγία προεπεξεργαστή:
      #define ISOLATION_AWARE_ENABLED
      
    • Μεταγλώττιση με:
      /D ISOLATION_AWARE_ENABLED
      
  3. Προσθέστε το αρχείο διακήρυξης στο αρχείο πόρων, όπως στο ακόλουθο παράδειγμα:
    #include "windows.h"
    ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "mydllname.dl.manifest"
    

Microsoft Visual Studio .NET και διαχειριζόμενου γλώσσες

Για να χρησιμοποιήσετε το Visual Studio .NET και .NET Framework για να ενεργοποιήσετε τα Windows XP θέματα για ένα πρόσθετο του COM, ακολουθήστε τα εξής βήματα.

ΣΗΜΕΙΩΣΗΣε αυτό το παράδειγμα, C# χρησιμοποιείται για την ενεργοποίηση ενός περιβάλλοντος ενεργοποίησης Προσθήκη θέματος σε μια φόρμα των Windows. Επίσης, για θέματα των Windows θα ενεργοποιηθούν τα κουμπιά, πλαίσια ελέγχου, κουμπιά επιλογής και πλαίσια ομάδα, τοFlatStyleπρέπει να οριστεί η ιδιότητα αυτών των αντικειμένωνSYSTEM.
  1. Συμπεριλάβετε τις ακόλουθες πληροφορίες σε ένα αρχείο .cs. Για να προσαρμόσετε τις πληροφορίες για το συγκεκριμένο πρόσθετο:
    using System.Runtime.InteropServices;
    using System;
    using System.Security;
    using System.Security.Permissions;
    using System.Collections;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
    
    namespace MyOfficeNetAddin
    {
        /// <devdoc>
        ///     This class is intended to use with the C# 'using' statement in
        ///     to activate an activation context for turning on visual theming at
        ///     the beginning of a scope, and have it automatically deactivated
        ///     when the scope is exited.
        /// </devdoc>
    
    [ SuppressUnmanagedCodeSecurity ]
    internal class EnableThemingInScope : IDisposable
    {
       // Private data
    	  private uint  cookie;
       private static ACTCTX enableThemingActivationContext;
       private static IntPtr hActCtx;
       private static bool contextCreationSucceeded = false;
    
       public EnableThemingInScope(bool enable)
       {
       cookie = 0;
       if (enable && OSFeature.Feature.IsPresent(OSFeature.Themes))
       {
        if (EnsureActivateContextCreated())
        {
         if (!ActivateActCtx(hActCtx, out cookie))
         {
             // Be sure cookie always zero if activation failed
             cookie = 0;
         }
        }
       }
      }
    
      ~EnableThemingInScope()
      {
       Dispose(false);
      }
    
      void IDisposable.Dispose()
      {
       Dispose(true);
      }
    
      private void Dispose(bool disposing)
      {
       if (cookie != 0)
       {
        if (DeactivateActCtx(0, cookie))
        {
           // deactivation succeeded...
           cookie = 0;
        }
       }
      }
    
      private bool EnsureActivateContextCreated()
      {
       lock (typeof(EnableThemingInScope))
       {
        if (!contextCreationSucceeded)
        {
         // Pull manifest from the .NET Framework install
         // directory
    
         string assemblyLoc = null;
                            
         FileIOPermission fiop = new FileIOPermission(PermissionState.None);
         fiop.AllFiles = FileIOPermissionAccess.PathDiscovery;
         fiop.Assert();
         try
         {
          assemblyLoc = typeof(Object).Assembly.Location;
         }
         finally
         { 
          CodeAccessPermission.RevertAssert();
         }
    
         string manifestLoc = null;
         string installDir = null;
         if (assemblyLoc != null)
         {
          installDir = Path.GetDirectoryName(assemblyLoc);
          const string manifestName = "XPThemes.manifest";
          manifestLoc = Path.Combine(installDir, manifestName);
         }
    
         if (manifestLoc != null && installDir != null)
         {
          enableThemingActivationContext = new ACTCTX();
          enableThemingActivationContext.cbSize = Marshal.SizeOf(typeof(ACTCTX));
    	     enableThemingActivationContext.lpSource = manifestLoc;
    
          // Set the lpAssemblyDirectory to the install
          // directory to prevent Win32 Side by Side from
          // looking for comctl32 in the application
          // directory, which could cause a bogus dll to be
          // placed there and open a security hole.
    	     enableThemingActivationContext.lpAssemblyDirectory = installDir;
    	     enableThemingActivationContext.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID; 
     
    	     // Note this will fail gracefully if file specified
          // by manifestLoc doesn't exist.
          hActCtx = CreateActCtx(ref enableThemingActivationContext);
          contextCreationSucceeded = (hActCtx != new IntPtr(-1));
         }
        }
    
        // If we return false, we'll try again on the next call into
        // EnsureActivateContextCreated(), which is fine.
        return contextCreationSucceeded;
       }
      }
    
      // All the pinvoke goo...
      [DllImport("Kernel32.dll")]
      private extern static IntPtr CreateActCtx(ref ACTCTX actctx);
      [DllImport("Kernel32.dll")]
      private extern static bool ActivateActCtx(IntPtr hActCtx, out uint lpCookie);
      [DllImport("Kernel32.dll")]
      private extern static bool DeactivateActCtx(uint dwFlags, uint lpCookie);
    
      private const int ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x004;
                
      private struct ACTCTX 
      {
       public int       cbSize;
       public uint      dwFlags;
       public string    lpSource;
       public ushort    wProcessorArchitecture;
       public ushort    wLangId;
       public string    lpAssemblyDirectory;
       public string    lpResourceName;
       public string    lpApplicationName;
      }
     }
    }
    
  2. Δημιουργία φόρμας με το παρακάτω πρόγραμμα εξομοίωσης. Αυτή η διαδικασία προωθεί ένα περιβάλλον ενεργοποίησης θεματικά πριν να δημιουργήσετε στοιχεία ελέγχου:
    using( new EnableThemingInScope( true ) )
    {
     Form1 form1 = new Form1();
     form1.CreateControl();
    }
    

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τον τρόπο χρήσης των Windows XP οπτικό στυλ (θέματα), επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft MSDN στο Web:
http://msdn2.Microsoft.com/en-us/library/ms997646.aspx

Ιδιότητες

Αναγν. άρθρου: 830033 - Τελευταία αναθεώρηση: Τετάρτη, 29 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office Basic 2007
  • Microsoft Office Basic Edition 2003
  • Microsoft Office Professional 2007
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Small Business 2007
  • Microsoft Office Small Business Edition 2003
  • Microsoft Office Standard 2007
  • Microsoft Office Home and Student 2007
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Office Excel 2007
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Professional 2003
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Office Publisher 2007
  • Microsoft Office Publisher 2003
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Professional 2003
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Word 2007
Λέξεις-κλειδιά: 
kbprogramming kbcode kbhowtomaster kbmt KB830033 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:830033

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

 

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