Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để áp dụng Windows XP chủ đề cho văn phòng COM add-in

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:830033
TÓM TẮT
Khi bạn tạo một COM add-in cho một chương trình Microsoft Office (ví dụ, Microsoft Visio), sự xuất hiện của rằng tiện ích trong sẽ phù hợp bởi Theo mặc định hình thức văn phòng tiêu chuẩn. Tuy nhiên, với Microsoft Windows XP, bạn có thể chọn từ một số kiểu trực quan (hoặc chủ đề) để tuỳ chỉnh các xuất hiện của một chương trình Microsoft Windows.

Trừ khi cửa sổ chủ đề một cách rõ ràng có hiệu lực cho một COM add-in, sự xuất hiện của add-in thì không thay đổi với các lược đồ màu, dẫn add-in xuất hiện ngày hoặc out-of-synch với chương trình, nơi nó được chứa. Với Microsoft Visual C++ hoặc Microsoft Visual Studio.Ngôn ngữ NET, bạn có thể bật COM của bạn Add-in để lựa chọn trong cửa sổ chủ đề.

Khi bạn bật một add-in cho Cửa sổ chủ đề, các chủ đề ảnh hưởng đến chỉ là sự xuất hiện của add-in. Các chức năng add-in không bị ảnh hưởng.

Tuyên bố từ chối

Microsoft cung cấp lập trình ví dụ để minh hoạ chỉ, không có bảo hành hoặc thể hiện hay ngụ ý. Điều này bao gồm, nhưng không giới hạn, bảo đảm ngụ ý khả năng bán hàng hoặc cho một mục đích cụ thể. Bài viết này giả định rằng bạn đã quen thuộc với ngôn ngữ lập trình mà đang được chứng minh và với những công cụ được sử dụng để tạo ra và gỡ lỗi thủ tục. Microsoft hỗ trợ các kỹ sư có thể giúp giải thích các chức năng của một thủ tục cụ thể. Tuy nhiên, họ sẽ sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình để đáp ứng các yêu cầu cụ thể của bạn.

Microsoft Visual Basic 6.0

Visual Basic 6.0 hỗ trợ chủ đề. Add-in có thể không được theo chủ đề bằng cách sử dụng Visual Basic 6.0.

Microsoft Visual C++ 6.0

Sử dụng Visual C++ 6.0 để kích hoạt một COM thêm vào để lựa chọn trong Windows XP chủ đề, hãy làm theo các bước sau:
  1. Tạo một tập tin bản kê có chứa sau đây thông tin. Tùy chỉnh thông tin cho bạn cụ thể thêm trong:
    <?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. Thực hiện một trong những việc sau:
    • Bao gồm các chỉ dẫn preprocessor sau đây:
      #define ISOLATION_AWARE_ENABLED
    • Biên dịch với:
      /D ISOLATION_AWARE_ENABLED
  3. Thêm tệp kê vào tập tin tài nguyên của bạn, như trong các Ví dụ sau:
    #include "windows.h"ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "mydllname.dl.manifest"

Microsoft Visual Studio.NET và ngôn ngữ được quản lý

Sử dụng Visual Studio.NET và các.NET Framework để kích hoạt Windows XP chủ đề cho một COM thêm vào, hãy làm theo các bước sau.

Chú ý Trong ví dụ này, C# được sử dụng để kích hoạt một bối cảnh theo chủ đề kích hoạt trên một biểu mẫu Windows. Ngoài ra, đối với Windows chủ đề có hiệu lực cho nút, kiểm tra hộp, nút radio, và nhóm hộp, các FlatStyle tài sản của các đối tượng phải được thiết lập Các vấn đề.
  1. Bao gồm các thông tin sau trong một tập tin .cs. Tùy chỉnh thông tin cho bạn cụ thể thêm trong:
    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. Tạo ra hình thức của bạn với wrapper sau đây. Thủ tục này đẩy một bối cảnh theo chủ đề kích hoạt trước khi tạo ra bất kỳ điều khiển:
    using( new EnableThemingInScope( true ) ){ Form1 form1 = new Form1(); form1.CreateControl();}
THAM KHẢO
Để biết thêm về cách sử dụng Windows XP kiểu trực quan (chủ đề), truy cập vào Microsoft MSDN Web site sau:

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 830033 - Xem lại Lần cuối: 08/30/2011 09:52:00 - Bản sửa đổi: 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 KbMtvi
Phản hồi