VC 界面库皮肤库
CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit收费了)
dejock/
BCGControlBar(收费,mfc扩展开发包,功能很强大)
www.bcgsoft
SkinMagic(收费,看起来像Office)
appspeed/html/download.html
AppFace(收费,支持 mfc ,VCL,ATL , WTL 框架 )
www.appface/chs/index.htm
SKin++(收费,界面很好看)
www.uipower/
USkin(收费,界面很好看)
dia/
SYGUI(收费,mfc扩展框架)
www.sygui/
LibUIDK(部分免费,不开源,效果好,适合贴图)
www.iuishop/download.htm
GuiToolkit(开源,mfc扩展框架)
www.beyondata/default.htm
GardenUI(免费,界面效果挺好的,XML,代码界面分离)
www.gardenui/
几种免费的界面库及其用法
MFC的标准界面给程序员带来了一定的便利,但也使得用户总是抱怨Windows的界面非常的糟糕,于是各种各样的界面库诞生了,从金山瑞星等公司的一系列的软件来看,他们就有自己的界面库。好的界面库使用起来非常简单,就如QQ的换肤功能,转眼间使得软件面貌一新。
一个好的界面库可以大大降低编程的复杂程度,提高开发速度,保证软件风格的一致性。为了DVBAres的开发,我考察了几种(免费)界面库。
1。AppFace。
AppFace在一部分软件开发者的好评,因为它的使用实在是简单,而且稳定性和效率都不错,而且对于个人用户还有免费条款,因此中文页面上的介绍比较多。
这一款软件在其0.x版本上还是免费的,到目前的版本上已经不免费了,只提供90天的试用期。
2。MenuXP
MenuXP这个界面库只能作出仿OfficeXp风格的界面,使用起来也算简单,而且很关键的一条,它是免费的。
参考网址:deproject/menu/menuxp2.asp
3。CJ60。
CJ60原名为MFC的扩展库,是世界著名的界面库,网上有较多的源代码下载,不过这个扩展库的使用是针对MFC标准控件的,如果要研究这个界面库,则可以参考《VC++界面一揽子方案》,其中的说明文档对这些界面控件有较好的描述。
4。BCG。
专业版是一套非常好的MFC扩展界面库!可以帮助你在编程时轻松制作出非常漂亮专业的自定义界面!提供100多种界面,很容易经过我们自己的重新设计组合成满意的效果。缺点是复杂,使用起来需要一个学习的过程。
通过网上查询,发现可用的免费的较好的界面库非常少,大部分的曾经免费的界面库都已经
商业化。不过武爱敏手上正好有一个较老的界面库,测试了一下,效果还可以,于是终止了费力的调查。
AppFace的介绍
AppFace For VC 支持Win9X/NT/2K/XP,UNICODE/ANSI,能够对目标进程里的所有Widows标准控件,系统菜单,通用对话框等实现换肤,对非商业用途而言,它是完全免费的。关键的是AppFace的使用非常简单,很容易添加到已有的工程中。我使用的是 0.2 版,你也可以到它的网站 www.appface 去下载最新版本。
运行效果图如下:
AppFace 支持三种皮肤加载方式,从磁盘文件加载,从资源加载,从内存加载。下面我就说说如何从资源加载URF皮肤文件:
首先,要确保你下载了AppFace for VC 开发包,我们要用到其中的三个文件: "appface.h", "appface.dll" ,"gtclassic.urf" 。
接着,创建一个 VC 可执行文件工程, MDI/SDI/DIALOG/WIN32 类型的都可以,我以创建一个DIALOG 工程 ResSkin 进行说明。将"appface.h" 拷贝到该工程目录下,将"Appface.dll"拷贝到该工程的输出目录下,例如:"debug\",将"gtclassic.urf"拷贝到资源所在目录下。在VC 的项目管理器中进入资源管理项,在右键菜单中选择"Import",将"gtclassic.urf"添加进工程,资源类型设定为: "MYRESTYPE",资源ID设定为"IDR_MY_URF"。注意:资源ID 前面一定要加双引号 。
准备工作全部完成了,现在进入正题:
1.在ResSkin.cpp 中加入: #include "appface.h"
2.在CResSkinApp::InitInstance() 成员函数中添加如下代码
CResSkinApp::InitInstance()
{
...
免费分享源码的网址CAppFace af ; //line 1
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; //line 2
CResSkinDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
...
af.Remove() ; //line 3
}
编译... 一切搞定 !
3. 上面是官方的做法,由于appface 也支持从内存中加载urf,所以您也可以这样做:
CResSkinApp::InitInstance()
{
...
CAppFace af ; //Init
//Load
if(HRSRC hr = ::FindResource(NULL,"IDR_MY_URF","MYTYPE"))
{
ULONG nResSize = ::SizeofResource(NULL,hr) ;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。