Skin换肤实现,轻松完成Windows基本窗体的换肤

时间:2012-09-05 09:03:39
【文件属性】:

文件名称:Skin换肤实现,轻松完成Windows基本窗体的换肤

文件大小:592KB

文件格式:RAR

更新时间:2012-09-05 09:03:39

软件换肤

目前这方面的软件很多,但大部分都是收费的,不收费大部分又换的不全,对于一个学生来说花钱买是有些奢侈了,所以我一直就想做一个换肤软件提供给学生,让他们做课程设计或毕业设计时能轻易给自己软件美化界面。 但是一直苦于时间有限。工作太忙有时只能在周末或晚上写上两行代码。现在终于成形了本打算开源,但是有些地方还不完善(现只支持VC MFC, Windows Type: Dialog, SDI),所以现在只讲下原理,提供部分源码供感兴趣的人研究。现在发出来与大家共享。 现在商业的换肤软件大部分都是采用的Hook技术(呵呵,猜的,也许采用的更高深的技术)。Hook窗体消息,对窗体消息进行截获最终换成自已的处理方式。所以本人写的SkinMaster也是采用了同样的技术原理。说很简单但做起来有些困难。下面是我做Skin时遇到的问题及处理方式。 1.对于Windows基本控件进行Hook则可完成绘制。 2.对于菜单会制则有些麻烦,程序运行时窗体菜单WM_MEASUREITEM只运行一次,所以会出现在动态换另一套皮肤时菜单项大小不会跟据皮肤改变,解决方法是所有菜单你要动态生成。 3.主窗体的绘制,没啥太深技术就是要处理大量的消息。 4.滚动条的绘制,滚动条全靠Hook消息就没办法完成了,这个东西微软做的不像基本控件那样工作,还要对滚动条的API进行Hook。 先写这些,有时间我会把更详细的方法给大家写出来。下面程序中TestSkin程序提供源码,并完成了按钮等控件的换肤。


【文件预览】:
SkinDemo_Static.rar
TestSkin_Code.rar
SkinDemo_Dynamic.rar

网友评论

  • 可惜不是我想要的,不过谢谢分享
  • 只有dll,不太好用
  • 还行可以使用
  • 非常不错哦,正是我想找的,我就是想自绘,就是不知道怎么弄,有的借鉴了,可惜做了一部分,不过还是很感谢!
  • 还行可以使用
  • 没用上,是个dll
  • 我用过了,而且还找到了office2007的皮肤
  • 没用上,貌似还行!
  • 没用上,不过还是不错的
  • 木有源代码
  • 还是个DLL,不太实用
  • 效果不错,学习
  • 对封装自己的界面库有一定的借鉴意义
  • 不太实用,自绘的话还可以考虑一下。
  • 我用过了,是DLL文件很好用
  • 没用上,是个dll,其实还有其他好些库可以实现这个功能的。
  • 还是个DLL,不太实用
  • 我以为可以自己控制呢,原来是个DLL,不过还是谢谢你的分享。
  • dll版本效果相当不错