【美化】VC皮肤美化方法 ~

在最近的一些编写工作中,很多人,有很多,遇到了关于VC界面美化的问题,由于只能限制于系统主题的选择。所以,写好的程序界面很是难看,甚至不好看··· ···原来通常的美化方法不是用纯代码写出来的,而是用SkinMagic软件加代码调用美化出来的或者是其他的方法。因为SkinMagic不够成熟,所以往往会出现错误,比如我在进行美化的时候经常会出现一些编译错误,或者是皮肤文件的内容错误,而当编译通过时又会出现断言错误,实在是不怎么好,网上有关于SkinMagic的美化方式都是相互抄袭,没有说清楚具体怎么做,具体的问题解决方案!
于是,在阿彪的提点下,不使用SkinMagic进行美化,而是使用更为成熟的SKIN++进行美化工作。SKIN++更为简单一点,不需要写入那么多的代码进行皮肤初始化等工作,也不需要为特定的对话框或者是文档进行加载皮肤,方法如下:

一.加载Skin++
1.在(VC7)"项目->属性->链接器->输入->附加依赖项"中加入SkinPlusPlusDLL.lib
或 在(VC6)"Project->Settings->Link->Object/library"中加入SkinPlusPlusDLL.lib
2.在你的程序中包含头文件
#inlcude "SkinPlusPlus.h"
3.在程序中加入初始化语句InitInstance()
InitializeSkin(_T("
XPCorona.ssk")); //皮肤文件
注:以上假定SkinPlusPlusDLL.lib,SkinPlusPlus.h,XPCorona.ssk,SkinPlusPlus.DLL都在当前目录,如果不是请更改路径设置。

二.卸载Skin++
在程序的卸载函数中加入ExitInstance()
ExitSkin();

三.更换皮肤
执行函数LoadSkin即可以实现动态换肤
LoadSkin(_T("XPCorona.ssk"));

四.函数说明
InitializeSkin是SKin++的初始化函数,您可以采用如下参数加载Skin++
InitializeSkin(皮肤文件名);
注:如果皮肤文件名中没有路径则采用当前目录。
LoadSkin(皮肤文件名);
注:如果皮肤文件名中没有路径则采用当前目录。

五.使用分隔条窗体的应注意的问题
您必须SKINPLUSPLUS_SPLITTER()和SKINPLUSPLUS_INIT_SPLITTER(m_wndSplitter)宏
注:SKINPLUSPLUS_INIT_SPLITTER一般传入分隔条对象m_wndSplitter
例如:
......................

SKINPLUSPLUS_SPLITTER()

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
SKINPLUSPLUS_INIT_SPLITTER(m_wndSplitter);

......................
}
就是三个文件,加上一个皮肤文件。总共四个文件,在运行时,需要将四个文件放到程序文件下,但是在生成了DEBUG文件后,如果想让DEBUG文件中的程序可以直接运行,那就需要将皮肤文件与DLL动态连接库文件都放到DEBUG文件中,RELEASE文件中一样,打包时就将四个文件一起打包,就可以了!呵呵
就是这么简单,SKIN++可以在全国各大下载网站下载,欢迎下载使用。我用过,不错~~~