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

<script src="win.js" type="text/javascript"></script> 

 

一、    制作皮肤文件

首先要学会使用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之后,程序所有带滚动条的控件,滚动条自动换肤。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SkinMagic SDK是为C/C++程序员设计的函数库,通过使用该库提供的API可以很方便的为你 的应用程序增加最流行的换皮肤的功能。SkinMagic是基于图片的皮肤系统,只要简单的几个 函数调用你的应用程序就具有了换皮肤的功能。通过SkinMagicBuilder皮肤编辑工具,你可以 定制自己特色的皮肤。 History of SkinMagic for C/C++ 2003.3.1 SkinMagic SDK V1.0 Bug Fixed: 1,SkinMagic SDK *Fix Radio button flicker problem *Fix Check button flicker problem *Fix Menu paint problem under MDI window *Fix Rebar problem *Fix menu scroll problem *Fix flicker problem when change skin. +Add automatic adjust control position by skin +Add font property to all control 2,SkinMagicBuilder +Add Zoom tool +Add Visual Object Editor +Add WYSWYG skin control edit. +Add SkinMagicEditor use guide. +Add more you can find in program. 2003.2.18 SkinMagic SDK V0.9 SP1 Bug Fixed: +SkinMagic.DLL support VC7(VC.NET) *Fix drag horizontal toolbar and drop to vertical dock position problem. *Fix MDI client window paint problem. *Fix Toolbar flicker problem. =========================== SkinMagic SDK Version0.8 =========================== 增加功能: 1,支持多线程 2,增加对Tab换皮肤功能 3,增加对Edit换皮肤功能 4,增加对RichEdit换皮肤功能 5,增加对ListBox换皮肤功能 6,增加对TreeView换皮肤功能 7,增加对ListView换皮肤功能 8,增加对Header换皮肤功能 9,增加对ScrollBar控件换皮肤功能 10,增加对Tab换皮肤功能 11,增加对Simple的ComboBox的换皮肤功能 12,增加TrackSkinPopupMenu函数支持右键菜单的换皮肤。 13,增加两个函数支持非标准的窗口的滚动条的换皮肤。 14,增加几个新的皮肤文件 15,增加SDK和WTL的例子程序,增加一个控件换皮肤的例子程序。 16,增加一个对话框窗口显示菜单的例子程序。 17,增加一个用于动态链接MFC库的LIB 修订的问题: 1,RemoveWindowSkin有问题会导致窗口的菜单丢失,程序退出的时候死机。 2,工具条上Disable的按钮的图标没有显示成Disable的状态。 3,在状态栏中的三个(通常情况)键盘状态指示器:NumLock,CapsLock,ScrollLock好像不能随键盘的状态的改变而动态地改变! 4,有时候系统按钮的菜单状态不是很合理 5,工具条从前在Button旁边有箭头表示该按钮支持菜单,现在使用该库以后箭头不见了 6,解决MDI窗口的一个刷新问题。 7,解决MFC库中定义的函数连接的时候重复定义的问题。 8,修订无法实时刷新更新的菜单的问题。 ================================= SkinMagic SDK for Visual C++ Website:http://www.appspeed.com/ Support:support@appspeed.com =================================

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值