admin管理员组

文章数量:1568308

2024年6月16日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.5

(22)申请日 2007.09.06

(71)申请人 成都金山互动娱乐科技有限公司;北京金山数字娱乐科技有限公司;珠海金山软

件股份有限公司

地址 610041 四川省成都市高新区天府大道南延线高新孵化园科技财富中心3层

(72)发明人 荣侠

(74)专利代理机构 成都天嘉专利事务所

代理人 徐丰

(51)

(10)申请公布号 CN 101118496 A

(43)申请公布日 2008.02.06

权利要求说明书 说明书 幅图

(54)发明名称

一种Windows平台下让软件皮肤与

桌面主题保持一致的方法

(57)摘要

一种Windows平台下让软件皮肤与

桌面主题保持一致的方法,所述桌面主题

的资源都保存在系统盘:

WindowsResourcesThemes(WinXP)目录

中,在该目录下的有以dll、theme和

msstyles为后缀的文件,其特征在于:在软

件开始运行时自动调用GetCurrent

ThemeName函数得到当前桌面主题文件,

对文件同名的dll、theme和msstyles进行

分析,得到与桌面主题相关的资源文件,

然后读取图片资源文件,并将得到的图片

资源文件加载为软件的当前皮肤;本发明

可以让电脑使用者在配置任意桌面主题的

情况下,软件的皮肤都会与桌面主题相匹

配,加载当前桌面主题所使用的不同皮

肤,软件均会和桌面主题一致,这样可以

使电脑使用者的视觉效果更舒适。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.所述桌面主题的资源都保存在本机系统盘:WindowsResourcesThemes目录中,

在该目录下的有以dll、theme和msstyles为后缀的文件,其特征在于:在软件开始

运行时自动调用GetCurrentThemeName函数得到当前桌面主题文件,对文件同名

的dll、theme和msstyles进行分析,得到与桌面主题相关的资源文件,然后读取图

片资源文件,并将得到的图片资源文件加载为软件的当前皮肤。

2.根据权利要求1所述的一种Windows平台下让软件皮肤与桌面主题保持一致的方

法,其特征在于:所述读取图片资源文件是使用的一般读取图片方式。

3.根据权利要求1所述的一种Windows平台下让软件皮肤与桌面主题保持一致的方

法,其特征在于:所述将得到的图片资源文件加载为软件的当前皮肤是使用的换肤

软件所使用方式。

4.根据权利要求1所述的一种Windows平台下让软件皮肤与桌面主题保持一致的方

法,其特征在于:监视Windows消息,当收到WM THEMECHANGED消息时则

表示当前桌面主题发生改变,此时通过使用所述GetCurrentThemeName函数得到

桌面主题的变化情况,当桌面主题改变后重复软件开始运行时的分析步骤,使软件

的皮肤同步跟随改变,根据主题资源中图片的默认格式进行调整。

说 明 书

技术领域

本发明涉及Windows平台界面编程,是一种提高界面可观性的一种方法。

背景技术

计算机的桌面主题往往是用户根据自己的爱好所选择的喜爱的皮肤配置,桌面主题

通常是以一种有趣的方式来定制外观和感觉你的电脑的桌面。一般软件的皮肤因为

其开发时的独立性,有自己独立地皮肤配置,软件皮肤是指由专业美工为应用程序

定制的用以替代Windows默认风格的图形界面,软件在使用的时候往往是固定的

皮肤配置,与操作系统是格格不入的;即使一般软件的皮肤配置具有换肤的功能,

也需要必须先由开发者预先编写好加载换肤的功能,同时还需要提供大量的皮肤资

源,这又会加大了一般软件的开发周期。

针对以上两个问题,最好的方法是在不影响软件开发的同时,又可以使软件与桌面

主题相配套,但是现在还没有非常好的办法来解决。

发明内容

本发明为了解决将软件与桌面主题相互配套的问题,提供了一种Windows平台下

让软件皮肤与桌面主题保持一致的方法,可以让软件根据不同的桌面主题而使用不

同的软件皮肤,从而达到软件和桌面主题一致的目的。

本发明的技术方案如下:

一种Windows平台下让软件皮肤与桌面主题保持一致的方法,所述桌面主题的资

源都保存在本机的系统盘:\Windows\Resources\Themes(WinXP)目录中,在该

目录下的有以dll(动态链接库文件)、theme(windows桌面主题文件)和msstyles(可视

化风格文件)为后缀的文件,其特征在于:在软件开始运行时自动调用

GetCurrentThemeName函数(获取当前桌面主题函数)得到当前桌面主题文件,对文

件同名的dll(动态链接库文件)、theme(windows桌面主题文件)和msstyles(可视化风

格文件)进行分析,得到与桌面主题相关的资源文件,然后读取图片资源文件,并

将得到的图片资源文件加载为软件的当前皮肤。

所述读取图片资源文件是使用的一般读取图片方式,即使用微软所提供API(应用

程序接口)来进行读取,具体获取方法可参考MSDN(微软公司面向软件开发者的信

息服务)中Image相关内容。

所述将得到的图片资源文件加载为软件的当前皮肤是使用的普通换肤软件所使用方

式,即将所有的控件都拆分为多个图片的集合,并且可通过不同的标志位来确定控

件此时所需图片,加以读取配置.

监视Windows消息,当收到WM_THEMECHANGED消息(桌面主题变化消息)时

则表示当前桌面主题发生改变,此时通过使用GetCurrentThemeName函数得到桌

面主题的变化情况,当桌面主题改变后重复软件开始运行时的分析步骤,使软件的

皮肤同步跟随改变,而改变方式与其它加载皮肤的方式相同,仅需要根据主题资源

中图片的默认格式进行一定的调整。

所述以theme(windows桌面主题文件)为后缀的文件是桌面主题相关文件,记录了

该桌面主题的配置信息;以msstyles(可视化风格文件)为后缀的文件是桌面外观配

置信息与主要资源文件;以dll(动态链接库文件)为后缀的文件中则是相关外观配置

的详细说明。

所述以theme(windows桌面主题文件)为后缀的文件是一个INI(配置文件)文件,对

该INI文件进行分析可以轻易获取与桌面主题相关的控件位置与颜色信息;以

msstyles(可视化风格文件)为后缀的文件与以dll为后缀的文件都是动态链接库文件,

只需按照对动态链接库的分析便可以得到其中的控件配置信息和控件所需资源文件。

所述INI文件是一种微软所提供的配置文件,详细的结构可参考微软的官方介绍。

对INI的分析微软也提供的详细的函数接口,相关函数与实现方法可从MSDN(微

软公司面向软件开发者的信息服务)中获取。

所述动态链接库文件主要是提供了一种方法,使进程可以调用不属于其可执行代码

的函数;在桌面主题相关的动态链接库文件的主要是为了存储桌面主题所需要的相

关配置和资源文件,具体获取方法可参考MSDN(微软公司面向软件开发者的信息

服务)中ImageHlp相关内容。

本发明的有益效果如下:

本发明可以让电脑使用者在配置任意桌面主题的情况下,软件的皮肤都会与桌面主

题相匹配,加载当前桌面主题所使用的不同皮肤,软件均会和桌面主题一致,这样

可以使电脑使用者的视觉效果更舒适。

附图说明

图1为本发明的处理流程图

图2为本发明的msstyles文件中部分配置与资源信息

图3为本发明的主题所对应基本皮肤资源图例

具体实施方式

实施例

一种Windows平台下让软件皮肤与桌面主题保持一致的方法,所述桌面主题的资

源都保存在本机的系统盘:\Windows\Resources\Themes(WinXP)目录中,在该

目录下的有以dll、theme和msstyles为后缀的文件,在软件开始运行时自动调用

GetCurrentThemeName函数得到当前桌面主题文件,对文件同名的dll、theme和

msstyles进行分析,得到与桌面主题相关的资源文件,然后读取图片资源文件,并

将得到的图片资源文件加载为软件的当前皮肤。

所述读取图片资源文件是使用的一般读取图片方式,即使用微软所提供API(应用

程序接口)来进行读取,具体获取方法可参考MSDN(微软公司面向软件开发者的信

息服务)中Image相关内容。

所述将得到的图片资源文件加载为软件的当前皮肤是使用普通换肤软件所使用方式,

即将所有的控件都拆分为多个图片的集合,并且可通过不同的标志位来确定控件此

时所需图片,加以读取配置。

监视Windows消息,当收到WM_THEMECHANGED消息时则表示当前桌面主题

发生改变,此时通过使用GetCurrentThemeName函数得到桌面主题的变化情况,

当桌面主题改变后重复软件开始运行时的分析步骤,使软件的皮肤同步跟随改变,

而改变方式与其它加载皮肤的方式相同,仅需要根据主题资源中图片的默认格式进

行一定的调整。

所述以theme为后缀的文件是桌面主题相关文件,记录了该桌面主题的配置信息;

以msstyles为后缀的文件是桌面外观配置信息与主要资源文件;以dll为后缀的文

件中则是相关外观配置的详细说明。

所述以theme为后缀的文件是一个INI文件,对该INI文件进行分析可以轻易获取

与桌面主题相关的控件位置与颜色信息;以msstyles为后缀的文件与以dll为后缀

的文件都是动态链接库文件,只需按照对动态链接库的分析便可以得到其中的控件

配置信息和控件所需资源文件,见图2所示。

所述INI文件是一种微软所提供的配置文件,详细的结构可参考微软的官方介绍。

对INI的分析微软也提供的详细的函数接口,相关函数与实现方法可从MSDN中

获取。

所述动态链接库文件主要是提供了一种方法,使进程可以调用不属于其可执行代码

的函数;在桌面主题相关的动态链接库文件的主要是为了存储桌面主题所需要的相

关配置和资源文件,具体获取方法可参考MSDN(微软公司面向软件开发者的信息

服务)中ImageHlp相关内容。

本文标签: 桌面主题文件软件