|
概要:本文档说明了如何使用 Microsoft Windows XP 来完成将外观风格应用于应用程序时必需执行的常见任务。
目录
- 简介
- ComCtl32.dll 版本 6
- 外观风格任务
- 在未使用第三方扩展的应用程序中使用 ComCtl32.dll 版本 6
- 在使用扩展、插件或进程内运行的 DLL 的应用程序中使用 ComCtl32 版本 6
- 在控制面板中或在通过 RunDll32.exe 运行的 DLL 中使用 ComCtl32 版本 6
- 将外观风格用于自定义控件
- 使自行绘制的控件能够使用外观风格
- 使控件在具有外观风格的对话框或窗口中不显示外观风格
- 使用 UxTheme 管理程序呈现其部件不具有外观风格的控件
- 将外观风格用于 HTML 内容
- 使 UxTheme 管理程序忽略顶层窗口
- 使用 32 位抗失真图标
- 使您的应用程序可同时在 Windows XP 和 Windows 的早期版本上正常运行
- 总结
简介
通过使用 Microsoft® Windows® XP,您现在可以定义控件和窗口的外观风格,例如简单的颜色以及纹理和形状。您可以控制控件中的每个定义部件,也可以控制窗口中非客户端(框架和标题)区域的每个部件。之后,用户可以使用 Windows 控制面板中的“外观”选项卡在传统外观风格和其它可用风格之间进行切换。
Windows XP 版本提供外观风格。通过使用助手库和应用编程接口 (API),您无需更改过多代码即可在您的应用程序中使用 Windows XP 的外观风格。有关详细信息,请参阅 MSDN Library 中的 Platform SDK 文档。
ComCtl32.dll 版本 6
Windows XP 操作系统上运行的所有应用程序都有一个非客户端区域,其中包括窗口框架和非客户端滚动条。默认情况下,外观风格将应用于非客户端区域。这意味着非客户端区域的外观由当前安装的外观风格指定。要将外观风格应用于客户端区域中的常用控件,必须使用 ComCtl32.dll 版本 6 或更高版本。与 ComCtl32.dll 的早期版本不同,ComCtl32.dll 版本 6 不可重新分发。要使用动态链接库 (DLL) 的版本 6,唯一途径是使用包含它的操作系统。Windows XP 同时提供版本 5 和版本 6。ComCtl32.dll 版本 6 中包含用户控件和常用控件。默认情况下,各种应用程序使用 User32.dll 中定义的用户控件和 ComCtl32.dll 版本 5 中定义的常用控件。
如果要让您的应用程序使用外观风格,必须添加应用程序声明,指出如果 ComCtl32.dll 版本 6 可用,则应该使用它。版本 6 包括一些新控件和其它控件的新选项,但是,最大的变化是支持对控件在窗口中的外观进行更改。
外观风格任务
要将外观风格添加到您的控件,可能需要执行以下一些任务。
在未使用第三方扩展的应用程序中使用 ComCtl32.dll 版本 6
下面是一些未使用第三方扩展的应用程序示例。
要创建声明并使您的应用程序能够使用外观风格,请执行以下步骤:
- 链接到 ComCtl32.lib 并调用 InitCommonControls(请参阅 MSDN Library 中的 Platform SDK 文档)。
- 将名为 YourApp.exe.manifest 的文件添加到具有以下 XML 格式的源代码树中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>此处是您的应用程序说明。</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
- 将声明添加到应用程序的资源文件中,如下所示:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"
注意:如果将前一项添加到资源中,则必须在一行中对其进行格式设置。或者,您可以将 XML 声明文件放置在与应用程序的可执行文件相同的目录中。操作系统将首先从文件系统加载声明,然后检查可执行文件的资源部分。文件系统版本优先。
在使用扩展、插件或进程内运行的 DLL 的应用程序中使用 ComCtl32 版本 6
下面是一些使用扩展的应用程序的示例。
- Microsoft Management Console (Mmc.exe)
- Windows Shell
- Microsoft® Visual Studio®
要创建声明并使您的应用程序能够使用外观风格,请执行以下步骤:
- 使用 Windows XP Beta 2 SDK 或更高版本。
- 包括常用控件标题文件,如下所示:
#include "commctrl.h"
- 定义编译器变量预处理程序定义,如下所示:
#define SIDEBYSIDE_COMMONCONTROLS 1
将名为 YourApp.manifest 文件添加到具有以下 XML 格式的源代码树中:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>此处是您的应用程序说明。</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
[1] [2] [3] [4] 下一页
|