
ftwl0
-
个人空间
相册
- 组别:金牌会员
- 性别:
- 来自:
- 积分:1000
- 帖子:569
- 注册:
2008-05-27
|
【美化】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++可以在全国各大下载网站下载,欢迎下载使用。我用过,不错~~~
|