让程序轻松支持换肤功能--VB6示例

 

特别注明:如有转载请包含此出处http://blog.csdn.net/aohan

 

说到换肤,我们脑子当中可能就会浮现很多商业软件那些漂亮的皮肤,自从XP流行以来,程序的外观变得比以往更加引人注意,像Office 系列的界面,一直是很多程序员模仿的范例,今天我就利用Xtreme Suite Pro ActiveX 轻松的给自己程序加上皮肤应用功能,为我们自己的程序增色。

 

目标:制作一个具有换肤功能的程序,程序界面模仿Office 2007样式

 

一、准备工作

 

       1、开发工具VB6,当然也可以用.Net,这里以VB6做示例

 

       2、Xtreme Suite Pro ActiveX  12英文正式版

 

            下载地址为:

 

             Part1:http://download.csdn.net/source/744548

 

             Part2:http://download.csdn.net/source/744597

 

二、工具安装

 

       1、VB6的安装不多说

 

        2、将上述下载地址的两个文件下载后放在同一个目录下,然后解压Part1,解压完成后,可以看到一个setup.exe文件,按提示安装,其中Sn在对应的文本中,注意我们选用的Sn为Xtreme Suite Pro ActiveX v12.0.1 英文正式版的,Xtreme Toolkit Pro v12.0.1是针对MFC的,不要输入错误。

 

       现在假设Xtreme Suite Pro ActiveX  按照默认方式已安装成功,那边我们可以进入到下一步了。

 

三、正式开始

 

      1、新建一个VB6的EXE工程

 

      2、在工具栏上点击右键找到部件,因为Xtreme Suite Pro ActiveX  已安装成功,所以我们可以看到部件引用中有如下内容

 

       

                                                (图1)

 

      勾中xtreme SkinFramework ActiveX Control 12.0.1,此时我们的界面当中应该可以看到类似下面的图片

 

 

                                  (图2)

 

到这里,我们的准备工作已完全准备妥当,下面是关键的代码,我们将其放在Form_Load事件中

 

Private Sub Form_Load()

       Dim FileName as string

       Dim IniFile as string

       FileName ="C:/Program Files/Codejock Software/ActiveX/Xtreme SuitePro ActiveX v12.0.1/Samples/SkinFramework/Styles/Office2007.cjstyles"

       IniFile="NormalBlue.ini"

        SkinFramework1.LoadSkin Dlg.FileName, IniFile
        SkinFramework1.ApplyWindow Me.hWnd
        SkinFramework1.ApplyOptions = SkinFramework1.ApplyOptions Or xtpSkinApplyMetrics

End Sub

 

      这里我们利用SkinFramework的LoadSkin方法找到指定的皮肤文件,然后再调用ApplyWindow方法,并且设置了ApplyOptions 属性,注意这里的设置其实就是SkinFramework的默认值。

 

  按F5运行工程,出现在我们眼前的界面将是下面这个样子了

                     

 

                                 

 

                         (图3)

 

简单的引用,简单的代码,出现在我们面前的却已经是如此漂亮的界面,到这里我们已大告功成了。

 

四、扩展

 

  Xtreme Suite Pro ActiveX  的SkinFramework 不但支持以cjstyles为扩展的皮肤文件,同时也支持XP的themes文件,即以msstyles为扩展名的文件,知道了这点我们的皮肤来源就非常广了。

 

    下面为大家推荐一个地方,里面有很多免费的皮肤

 

     http://customize.org/xpthemes

 

  安装完Xtreme Suite Pro ActiveX  ,官方即包含Office2007.cjstyles,Vista.cjstyles,WinXP.Luna.cjstyles,WinXP.Royale.cjstyles四个皮肤文件,同一个皮肤文件中可能包含几个配置文件,比如Office2007.cjstyles就包含NormalBlue.ini 、NormalAqua.ini 、NormalSilver.ini 、NormalBlack.ini 四个配置文件,可以放在LoadSkin方法的第二个参数中,就可以显示不同配置文件所达到的不同皮肤的效果。

 

为了读取皮肤文件所包含的配置文件,我们可以用下面的方法

 

    Dim Discription As SkinDescription
    Dim i As Integer
    Dim FileName as string

 

       FileName ="C:/Program Files/Codejock Software/ActiveX/Xtreme SuitePro ActiveX v12.0.1/Samples/SkinFramework/Styles/Office2007.cjstyles"



        Set Discription = SkinFramework1.EnumerateSkinFile(FileName )
        For i = 0 To Discription.Count - 1
           debug.print "IniFile:" & Discription.IniFile(i).IniFileName & "/ColorScheme:" & Discription.IniFile(i).ColorScheme & _
                          "/FontSize:" & Discription.IniFile(i).FontSize
        Next

 

写到这里,我们才真正搞定了皮肤的开发,为了大家的使用方便,我特意写了一个示例程序

 

下载地址为:http://download.csdn.net/source/744605

 

另外这里包含了几个皮肤文件:http://download.csdn.net/source/750741

 

有兴趣的可以参考一下

 

特别注明:如有转载请包含此出处http://blog.csdn.net/aohan

 

现在发现好多网站在转载的文章的时候会去头删尾,结果就变成他们的原创了,在这里严重表示不满一下。

 

 


 

 

 

相关推荐
SKINSE界面库最新版3.1. SKINSE高级特性 1.SKINSE界面库内部没有完全采用HOOK拦截窗口的机制,主要采用子类化控件,修改窗口过程函数的方式进行界面美化。但是内置HOOK技术,可以动态设置HOOK,保证了SKINSE在整理构架上的灵活性。 2.SKINSE界面库内置DirectUI绘制思想,将界面绘制元素抽象成图片、文本、矩形区域、线条、动画,并且内置EventItem、DrawItem绘制机制。可以将这些绘制元素以及绘制机制组合开发,实现按钮、单选框、复选框、分组框、Tab控件、动画控件等界面控件。 3.SKINSE界面库提供了非常丰富的API接口,最大限度的SKINSE界面库更加透明化、个性化,SKINSE界面库的使用范围得到最大延伸。 4.SKINSE界面库在子类化进行控件美化的时候,尽量不修改控件的默认属性,最大程度地兼容window标准控件的默认属性。比如,目前市场上很多界面库在绘制窗口标题栏的时候,去掉了窗口的WS_CAPTION属性, 导致GetClientRect、GetWindowRect方法失效,从而加大了界面开发和设计的难度,当然也导致不能完美支持SDI/MDI等界面框架。 5.SKINSE界面库提供了界面控件动态布局的特性。省去了程序开发中最为繁琐的窗口控件位置的调整。只需要调整一下XML配置属性,就可以进行完美布局。 6.SKINSE界面库支持BMP、ICO、PNG、JPG等图片格式,支持皮肤色调变换,提供SKINSE内部的图像引擎接口。 7.SKINSE界面库支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、PowerBuilder、易语言等多种计算机语言开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

aohan

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值