详细界面库列表见http://home.pacbell.net/atai/guitool/
商业换肤软件(www.uipower.com)基于WIN32的界面库,上海勇进公司运作。05年发布第一个版本。去掉了窗口默认的非客户区,导致很window默认的API函数失效。而且一些关键的技术点存在BUG,比如web控件的弹出菜单有BUG。优点:两行代码换肤 缺点:有点慢
1.1 Skin++ 特性 ◆ 换肤彻底,包括系统对话框、Windows标准控件和第三方控件如BCG; ◆ 支持所有Win32/Win64平台,VC/VB/Delphi/C++Builder/VS.Net/PowerBuilder; ◆ 使用简单,只需一行代码实现整体换肤; ◆ 可视设计,提供皮肤设计工具,可自行设计皮肤,所见即所得的设计开发环境; ◆ 色调变换,支持皮肤色调变换,每一套皮肤都拥有N种色调风格; ◆ 皮肤资源海量,提供皮肤转换工具,可将主流的皮肤主题转换成Skin++格式; ◆ 支持Unicode,提供多种编码格式; ◆ 界面与业务逻辑彻底分离; 1.2 Skin++ 实现原理 Skin++属于第二代的外挂式的界面库。 Skin++ 提供了SkinBuilder 工具将所有控件的资源全部设计成为一个独立的文件,便于在应用程序外部独立地进行增删改操作。 Skin++ 主要采用Hook与子类化技术来实现应用程序的自动换肤。 1.3 Skin++换肤的大致流程 1、应用程序启动,加载Skin++库; 2、执行Skin++加载皮肤文件API函数; 3、Skin++ 安装窗口过程等类型Hook,准备截获应用程序所有窗口的创建事件; 4、Skin++ 收到窗口创建等消息,根据类名、风格等一些条件来判断是否对该窗口进行子类化; 5、窗口子类化即可以收到该窗口所有的消息; 6、根据不同的消息进行相应的处理。如:WM_PAINT消息,Skin++对其进行绘图的操作; 7、绘图中需要用到图片、文字、字体等资源即根据ID、名称等条件到皮肤文件中去查找; 8、控件运行过程中,各种界面行为的变化均可通过处理消息与API函数来进行; 9、控件销毁时,Skin++即对其进行反子类化,将Skin++换肤前的消息过程地址重新设成当前的消息过程; 10、控件所有的消息不再经过Skin++消息处理函数。控件执行其默认的窗口消息处理函数; 11、应用程序退出,Skin++库被卸载,在卸载之前Skin++获得通知,Skin++便在内部执行Hook的反初始化与资源文件的清理。
商业界面控件(www.directui.com)
DirectUI开放式界面开发库,提供平台加插件的开发模式,可以方便的对控件进行扩展。DirectUI支持多种开发语言及平台,比如VC,VB,C#,Delphi,C++Builder,PowerBuilder等等。提供所见即所得的开发工具DirectUI Builder2010,拖拽式界面开发模式,支持JavaScript脚本控制界面,将逻辑和界面彻底分离, 支持Alpha多图层混合特效,支持多种皮肤对象布局规则,支持多种图片格式资源,例如BMP, PNG, JPG, GIF等等,支持动态换肤,与VS IDE无缝集成。
同样是上海勇进的产品。据内部人员说是从微软挖一个技术牛人来开发的,内核是借鉴了微软的DUI技术。该界面库个人认为也存在很多问题。比如,他们限制了窗口的WM_SIZE消息,当窗口大小发生变化的时候,会出现虚框,不绘制来提高效率,严重影响用户体验。
商业库,bcg授权了微软在VS 2008中使用BCG的部分控件及功能,但是微软并没有直接将BCG集成进VS 2008中,而是做成单独的扩展资源包,需要单独下载(下载sp1安装)。
BCGControlBar专业版是MFC的一个扩展库,可用来构建类似于Microsoft® Office 2000/XP/2003/2007/2010、Microsoft Visual Studio等知名产品的高级用户界面,例如:日历、网格、编辑和甘特图等。包含了200多个精心设计、测试和具有完备文档的MFC扩展类。
BCGControlBar Library .NET Edition是使用语言C++/CLI(公共语言基础结构)编写的一个工具包,其代码为百分之百的托管代码。使用本产品,需要安装Microsoft .NET Framework 2.0版或者更高版本。BCGSoft Professional Editor(BCGSoft专业版编辑程序)是一款能让您将高级编辑控制组件合并到任何基于MFC的应用程序的MFC扩展库,提供类似vc编辑器的各种特效功能,如语法加亮功能、色块、Intelli Sense、字符图片支持等。
2008年01月07日,MS推出了 Visual C++ Feature Pack Beta 下载。这次的Feature Pack 是专门针对VC 库的一个扩充。扩充分为两方面,一方面是MFC 的界面控件库;另一方面是对ISO C++ Standard 2003 的TR1扩充。这个增强包目前只有英文版,其他语言版本要等到VS2008的SP1了。部署:首先需要到微软的下载中心 下载 Visual C++ Feature Pack Beta 下载这个303M的大家伙;
而后,你需要在机器上安装了英文版的Visual Studio 2008,别的语种Feature Pack不支持,完全安装VS2008,就连SQL Sever 2005 Express 和 水晶报表的基本组件也不能少!
如果您是Vista,千万别忘了"Run as Administrator"。HotfixInstaller服务将启动,并安装Feature Pack更新。HotfixInstaller服务有可能没有原因的挂在那里长时间不动(不是Not Responding状态),只要直接在Task Manager中结束掉进程,并重新运行安装包就可以了。
从下载中心找到了 Visual C++ 2008 Sample Library ,5M,下载,安装。在/Microsoft Visual Studio 9.0/Samples/1033 下找到AllVCLanguageSamples.zip 展开,找到Feature Pack 文件夹,打开里面的工程编译。 一共有34个例子。
在界面方面,集成了BCGSoft的界面控件,现在可以利用VC2008,轻松创建VS2005,Office 2007风格的应用程序界面了。同时,增加了部分控件。
The MFC Feature Pack library supports new features in the following areas:Menus Toolbars Panes Ribbon Control Outlook Alert Controls Dialog Boxes Customization Visualization Special Features
在C++方面,实现了TR1,有可能在下一个C++标准C++0x中得到体现。主要增加了部分容器和正则表达式。
<array> <functional> (TR1) <memory> (TR1) <random> <regex> <tuple> <type_traits> <unordered_map> <unordered_set><utility> (TR1)
在应用程序向导中选择界面风格,很简单的,我们得到了一个Office 2007风格的MFC程序:
NewControls例子演示了这些控件的具体用法