<?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>
control_panel_resource_id rt_manifest "yourcpl.manifest"
注意:编写完控制面板应用程序后,请将其放置在相应的类别中。现在,控制面板支持控制面板应用程序的分类。也就是说,可以为控制面板应用程序分配标识符并将其分为若干个任务区域,如“添加或删除程序”、“外观和主题”、“日期、时间、语言和区域选项”。
将外观风格用于自定义控件
标题文件 uxtheme.h 中定义了在向控件添加外观风格的步骤中以及在相应的代码示例中所引用的 uxtheme api。platform sdk 中对该 api 的各元素进行了说明。本节将说明将外观风格应用于控件的步骤,并提供一个绘图代码示例以及有关绘制控件的技巧。
要使控件能够应用外观风格,请执行以下步骤:
- 调用 openthemedata 并将要应用外观风格的控件的 hwnd 传递给说明控件类型的类列表。tmschema.h 中定义了各个类。openthemedata 返回一个 htheme 句柄,但是,如果外观风格管理器被禁用或当前的外观风格没有为给定控件提供特定的信息,该函数将返回 null。如果返回值是 null,则使用非外观风格的绘图函数。
- 要绘制控件,请调用 drawthemebackground 并传递以下内容:
- openthemedata 所返回的主题句柄 hdc,它用于呈现控件。
- 部件标识符,用于说明要呈现的控件部件。有关控件的部件和状态的信息,请参见“主题部件和状态”。
- 状态标识符,用于说明部件的当前状态。
- 指向 rect 结构的指针,该结构包含将呈现控件的矩形的坐标。
- openthemedata 所返回的主题句柄 hdc,它用于呈现控件。
- 有些部件可以是半透明的。要确定部件的透明度,可以使用主题句柄、控件部件和控件状态调用 isthemebackgroundpartiallytransparent。
- 如果控件绘制的是文本,请将文本放置于控件的内容矩形中并选择字体。
- 要确定内容矩形的位置,请调用 getthemebackgroundcontentrect。
- 将所需字体添加到设备上下文 (dc) 中,然后调用 drawthemetext。该函数将启用外观效果,如一些控件中的阴影文本。
- 要确定内容矩形的位置,请调用 getthemebackgroundcontentrect。
- 控件在接收到 wm_themechanged 消息后,应执行以下操作:
- 调用 closethemedata 以关闭现有主题句柄。
- 调用 openthemedata 以获得刚加载的外观风格的主题句柄。
- 调用 closethemedata 以关闭现有主题句柄。