使用SkinMagic工具为对话框换肤的基本方法

 

 

一、    制作皮肤文件

首先要学会使用SkinMagicBuilder工具制作皮肤文件。

1.       新建/窗口

SkinMagic Toolkit有两方法新建窗口:

(1)   使用菜单栏中的“Object选择Window-〉“SkinFrameWindow”即可;

(2)   使用Skin Object工具。首先View”菜下的Object Bar”,使Skin Object工具栏显示在窗口中。接着在工具SkinMagic文件下的Skin Object,右,在出的快捷菜选择 Window-〉“SkinFrameWindow”即可。

窗口的方法是中要除的窗口,选择Edit下的Delete选项

SkinMagic在所有窗口中使用了一种图像切割方法,在里我称之宫图。所宫图,就是把一个象分成左上(1)TopLeft)、中上(2)MiddleTop)、右上(3)TopLeft)、左中(4)MiddleLeft)、客(5)Client)、右中(6)MiddleRight)、左下(7)BottomLeft)、中下(8)BottomMiddle)、右下(9)BottomRight)九个部分其中的大小可以通过设置九宫图的参数来整。

2.       窗口的大小

在工作区的皮窗口上双设置窗口。

3.        窗口的属性

SkinMagic认设Object Inspector工具栏显示在窗口中。如果不在,可以通过选中“View”菜下的“Object Inspector实现

4.       窗口的九宫图

窗口宫图片之前,需要添加。添加方法有多仅举选择Object下的Load Image 选择图(不支持jpg格式)行添加。添加以后,片会Skin Object工具Image Object目下。片方法也有多仅举:在Skin Object片名,右,在出的快捷菜选择Unload Image 即可

图片加载之后,编辑程序主界面或者控件时,击图片属性区域,编辑窗口。在图片编辑窗口中,可以拖拽来确定选中区域,可以设置是否拉伸属性,对于颜色单一、图案单一的图片,可以选择拉伸属性,否则最好使用不可拉伸属性。

5.  添加皮控件

添加皮控件的方法有两

1)在Skin Object工具中要添加控件的口,右,在出的快捷菜选择Standard Control,在子菜选择控件名称即可。

2)另一个方法是选择单栏中的Object单选项,在下拉菜选择Standard Control,在子菜选择的控件名称即可。

二、 使用皮肤文件

完成皮文件的制作后,保存成.smf文件,存放到工程的资源目录下实现界面换肤。具体步骤如下:

(1)      SkinMagic Toolkit中的文件SkinMagiclib.h添加到当前工作区中。

(2)      使用SkinMagic Toolkit提供的库:SkinMagic.dllSkinMagic.lib(Unicode编码下使用SkinMagicU.libSkinMagicU.dll)

(3)      在工程的对话初始化函数中初始化,方法:

InitSkinMagicLib( AfxGetInstanceHandle(),  _T( "AutoRun" ),  NULL,  NULL ) );

括号中的内容依次是:当前程序的句柄、工程名序列号(可以为NULL

(4)      将皮文件以源的形式引入当前工程,首先 Resource View 中点 Import 引入几个已制作好的.SMF制皮文件,放在相同的"SKINMAGIC"文件下,分别给起一个名字。在工程对话框源文件中添加如下代来下肤资源文件:

LoadSkinFromResource( AfxGetInstanceHandle(),_T( "AUTORUN" ), _T( "SKINMAGIC" ) );

括号中的内容依次是:当前程序的句柄、为皮肤文件起的名字资源中的名称

   另外:文件也可以以文件的形式当前工程,首先将文件放在当前工程文件在工程对话框源文件中添加如下代

LoadSkinFile("corona.smf");

括号中的内容文件名。

(5)      为对话换肤,在工程对话初始化函数中所有的对话换肤,如下:SetDialogSkin( "Dialog" );

也可以为每一个对话别设置皮,在对话框的初始化函数中添加如下代

SetSingleDialogSkin( m_hwhd",Dialog" ) ;

括号中的内容当前对话框的句柄、对应对话框的窗口的名字。( 在制作的皮肤文件中给SkinFrameWindow的名字

(6)      在程序SkinMagic源,在当前工程对话框退出函数中添加如下代

ExitSkinMagicLib();

 

补充:

1,   如果新建的SkinFrameWindow加载的图片为1024*768SkinMagicBuilder工具的客户区窗口不能全部显示,客户区的滚动条不起作用。

2, 使用SkinMagic工具为滚动条换肤

    创建SkinScrollBar对象,名字任意,ControllID0之后,程序所有带滚动条的控件,滚动条自动换肤。

 

 
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页