C++界面库 《duilib入门到精通》- duilib概述

duilib是以DirectUI为技术原理开发的一款轻量级Windows桌面UI库,具有入门简单,使用方便等特点,在国内吸引了不少的开发者。其开发原型为国外大神viksoe的http://www.viksoe.dk/code/windowless1.htm 文章中提供的源码,国内开源前辈以此为基础:修正Bug、优化程序结构、提高稳定性和易用性,终于为广大UI开发者奉献了一款功能强大,使用方便的界面库。

界面库使用XML来描述界面风格,界面布局,可以很方便的构建高效,绚丽的,非常易于扩展的界面。从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。

Duilib界面库的出现解决了使用传统MFC界面库开发软件不美观、界面细节处理不好、使用硬编码、开发效率低下、生成程序体积大等问题。而且传统MFC界面美化库大都使用HOOK等对系统影响比较大的技术,可能会导致系统不稳定或者引发其他错误。而Duilib界面库完全基于GDI在窗口上自绘,无其他依赖,未使用特殊或危险的系统调用,能够很好的解决传统MFC界面的一系列问题。 Duilib界面库完全兼容ActiveX控件(如常见的IE控件和Flash),也可以和MFC等界面库配合使用,用户完全可以不用担心切换到Duilib界面库上面会带来额外的成本或者Duilib界面库会出现功能不够用等情况。

Duilib界面库可广泛用于互联网客户端、工具软件客户端、管理系统客户端、多媒体客户端(如KTV、触摸屏)、车载电脑系统、gps系统和手机客户端软件等。

国内的以下客户端都曾经以此为基础拓展并使用了duilib:

1、百度杀毒 
这里写图片描述 
2、微信PC客户端 
这里写图片描述 
3、爱奇艺客户端 
这里写图片描述 
4、网易云音乐 
这里写图片描述

以上只是一小部分,知名的不知名的还有很多!

为了方便各位朋友学习,Troy现推出系列教程《duilib从入门到精通》 
系列教程中学习用到的duilib版本均为Duilib_Ultimate 
源码地址为:https://github.com/qdtroy/DuiLib_Ultimate

学习交流QQ群:261675375 
有问题可以联系QQ 656067418或者邮件 qdtroy@qq.com

您可以使用duilib来在C++的DLL程序中使用XML设计的UI界面duilib是一个开源的UI,提供了丰富的控件和工具,支持使用XML来设计UI界面。您可以使用duilib的页面设计器工具来设计您的UI界面,并将其保存为XML格式,然后在您的DLL程序中使用duilib的UI模块来加载和显示这个XML文件。在使用duilib的UI模块时,您需要连接到duilib的核心和UI,以便在您的程序中使用duilib的UI组件。 以下是使用duilib的基本步骤: 1. 下载duilib,并解压到您的项目目录。 2. 在您的C++项目中添加duilib的头文件和文件。 3. 在您的代码中调用duilib的初始化函数和反初始化函数。 4. 使用duilib的页面设计器工具来设计您的UI界面,并将其保存为XML格式。 5. 在您的代码中使用duilib的UI模块来加载和显示这个XML文件。 下面是一个简单的示例代码,展示了如何使用duilib来加载和显示XML界面: ```c++ #include <Windows.h> #include "Duilib/UIlib.h" using namespace DuiLib; int APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: // 初始化duilib ::CoInitialize(NULL); CPaintManagerUI::SetInstance(hModule); break; case DLL_PROCESS_DETACH: // 反初始化duilib CPaintManagerUI::Term(); ::CoUninitialize(); break; } return TRUE; } // 显示XML界面 void ShowXmlUI(HWND hWndParent) { // 创建duilib窗口,并加载XML文件 CPaintManagerUI paint_manager; CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T("myui.xml"), NULL, NULL, &paint_manager); if (pRoot == NULL) return; // 设置duilib窗口的父窗口为hWndParent,并显示窗口 HWND hWnd = paint_manager.Create(hWndParent, _T("duilib window")); paint_manager.AttachDialog(pRoot); paint_manager.ShowWindow(true); } ``` 在上面的示例代码中,`DllMain`函数用于初始化和反初始化duilib,`ShowXmlUI`函数用于创建duilib窗口,并加载并显示XML界面。您可以将上面的代码集成到您的DLL程序中,以便在需要时显示XML界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值