Duilib教程-简单介绍
在读这篇博客的时候,可能您已经对duilib有一定的了解。所以,我并不打算对duilib进行过多的介绍。它的内核首先由外国人编写,后来由国人一个小组接过来继续编写,于是就有了现在的Duilib。
1.下载Duilib
首先它托管在Google,后来不知道是不是由于大陆将 Google 全面封锁,将搜索引擎禁用了不算,还将技术网站都封闭了。所以,Duilib又托管到了 Github。所以在学习它之前,你需要学习如何利用Github,将Duilib下载到本地进行编译、运行。
1)首先下载 GitHub for Windows. https://windows.github.com/
2)注册一个帐号。
3)打开网站https://github.com/duilib/duilib

看到网站右边的按钮,如上图的红框处,点击”Clone in Desktop”按钮,保存到自己的帐号中,并能下载到本地中,保存到本地,主要是为了便于即时更新。当Duilib有更新时,你可以利用本地的Github工具进行更新。
4)打开本地的目录。

如上图右上角的红框操作。
2.编译DUILIB
DuiDesigner.sln 这个文件是 XML 编辑器。
DuiLib.sln 这个是DUILIB 源文件及Demo源文件。
使用VS2008进行编译。
3.Dui原理小解。
原来的WINDOWS界面,主要是要WND叠加组成,如:

每个WND都有自己的消息处理循环。这样不好的地方是,
1)绘制不方便。比如你要在一个Button上绘制一张半透明的背景图片,如果你使用了 MemDC,要处理透明绘制就会相当麻烦,甚至会有难以预测的BUG。
2)可以给病毒可趁之机。可以利用FindWindow查找Button的句柄,然后向它发送WM_LBUTTONDOWN和WM_LBUTTONUP消息,就可以实现单击的效果。以前旧版的QQ就存在这个BUG。现在已经很少有这个BUG了。
Dui一个Wnd它的上面没有多余的Wnd,所以的控件都是虚拟出来的,并不具备自己的消息循环,它们都用WND的消息循环。简单的描述如下图:

将消息传递到控件,主要就是通过 control_from_point 这样的一个函数,通过鼠标的座标点进行判断是哪个控件,并将由该控件进行响应鼠标消息。
Duilib 的简单介绍就到这里了。
在学习一个东西的时候,我并不倾向于一开始就学习内核、源码。我觉得首先应该学习如何何用它,当你会用它了,去理解它的内核代码才会顺畅,也才看得明白。
所以,下一节将介绍 UIDesigner 的使用。
Duilib教程-简单介绍的更多相关文章
- Kafka使用入门教程 简单介绍
介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以 ...
- ActiveMQ基础教程----简单介绍与基础使用
概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...
- AudioToolKit的简单介绍及教程
AudioToolKit的简单介绍及教程 (2013-02-21 09:29:18) 转载▼ 标签: 游戏开发 unity3d教程 unity3d unity it 分类: Unity3d之插件篇 原 ...
- [转帖]MyCat教程【简单介绍】
MyCat教程[简单介绍] 2019-10-15 10:27:23 波波烤鸭 阅读数 618 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. ...
- SQLite数据库和JPA简单介绍
SQLite数据库和JPA简单介绍 一.SQLite简单使用 SQLite是遵循ACID的关系数据库管理系统,它的处理速度很快,它的设计目标是嵌入式的,只需要几百K的内存就可以了. 1.下载SQLit ...
- Android发展简单介绍
Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...
- OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)
PS. 因为csdn博客文章长度有限制,本文有部分内容被截掉了.在OpenCV中文站点的wiki上有可读性更好.而且是完整的版本号,欢迎浏览. OpenCV Wiki :<OpenCV 编程简单 ...
- 【浅墨著作】《OpenCV3编程入门》内容简单介绍&勘误&配套源码下载
经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...
- BST&AVL&红黑树简单介绍
(BST&AVL&红黑树简单介绍) 前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm ...
随机推荐
- (二)Solr——Solr界面介绍
1. Dashboard 仪表盘,显示了该Solr实例开始启动运行的时间.版本.系统资源.jvm等信息. 2. Logging Solr运行日志信息 3. Cloud Cloud即SolrCloud, ...
- C#下载apk文件
string fileName = "name.apk";//客户端保存的文件名 string filePath = Server.MapPath("ap ...
- Sphinx-简介及原理
1.Sphinx简介 是一款基于SQL的高性能全文检索引擎(还不支持NoSQL), 主要优点有: 1).创建和重建索引迅速 2).大数据量时检索速度较快 3).为很多脚本语言设计了检索API(如PHP ...
- mysql课程记录
thread_pool可以使用Percona的版本和Mariadb的版本 都是支持的 主从切换是根据HA的方式,TDDL(Taobao Distribute Data Layer) 的方式的话,推 ...
- Linux日知录(常用问题笔记)
http://blog.csdn.net/yizhu2000/article/details/70688420)序言 日有一知,当有一录,自09年来,工作所需,接触开源平台,对Linux常有涉猎,其间 ...
- ASP.NET 推荐书籍
ASP.NET 推荐书籍 1.首先推荐一本ASP.NET MVC的书籍 —— <Web开发新体验:ASP.NET 3.5 MVC架构与实战> [点评]:ASP.NET的MVC的书籍本来就不 ...
- Request to https://bower.herokuapp.com failed with 502
bower 版本过低,需要升级为最新bower版本, 如果升级版本后依然无法使用,更改.bowerrc配置,如下所示 { "directory": "bower_comp ...
- C++的泛型编程方式
1.使用类模板创建数组 下面这段代码:是创建一个元素为 T 类型的数组. #pragma once template<class T> class MyArray { public: // ...
- IIS6.0应用程序池回收(转载)
这段时间公司的程序经常出现问题,然后整个应用程序就不能访问了,我们的服务器版本:window 2003 SP1,IIS6.0,没有安装Microsoft Visual Studio .NET . 问题 ...
- Html Agility Pack/SgmlReader 解析html
Html Agility Pack/SgmlReader 解析html HtmlDocument htmlDoc = new HtmlDocument(); //输出成xml格式 htmlDoc.Op ...