界面库
文章平均质量分 79
7-sevens
跑马拉松的程序员
展开
-
Duilib学习笔记《01》—框架初识
从网上下载的duilib工程中附带的一副总体设计图(如下所示),可以先整体了解一下,有个初步的认识,对后续进一步深入了解学习会很有帮助。通过设计图有了一个初步认识后,接下来开始进一步深入学习了解,主要从以下几个方面进行了解学习:库的组成;框架基本流程;元素创建机制;消息处理机制。1. 库的基本组成1.1 工具库由于duilib没有对外部的任何库进原创 2016-05-28 15:39:19 · 1637 阅读 · 0 评论 -
Duilib学习笔记《07》— 资源加载
1. 简单模式使用文件名作为贴图内容,这种方式下,此图片将会以拉伸方式铺满控件。2. 复杂模式使用带属性的字符串表示贴图方式,既支持从文件中加载图片,也可以从资源中加载图片:01. 如果从文件加载设置file属性(例如:file=’XX.png’),不要写res和restype属性;02. 如果从资源加载设置res和restype属性,不要设置file属性...原创 2018-04-15 02:47:41 · 308 阅读 · 0 评论 -
Duilib学习总结
duilib学习笔记:Duilib学习笔记—框架初识Duilib学习笔记—界面布局Duilib学习笔记—控件使用Duilib学习笔记—窗体显示Duilib学习笔记—消息响应处理Duilib学习笔记—窗体基类WindowImpBaseduilib扩展:Duilib扩展—双击、右键消息扩展Duilib扩展—扩展GIf显示(原创 2016-05-29 17:13:17 · 723 阅读 · 0 评论 -
Duilib扩展—扩展GIF显示
在用duilib实际开发应用中,有时需要显示一些动态的图片,比如loading加载之类的。而duilib中负责对图片载入相关处理的stb_image.c对这块没有提供很好的支持,所以需要我们自行进行相关扩展。而对于动态图片效果,我们可以根据实际应用场景分两种:一. loading加载loading等待状态的图片效果,对于这类比较简单的情况,实际上不需要额外对duilib进行相关扩展原创 2016-05-29 13:18:57 · 1827 阅读 · 0 评论 -
Duilib扩展—双击、右键消息扩展
用过duilib的可能会发现,duilib中有些控件没能很好的区分左键、右键等消息。所以根据实际需要,我们需要进行相关区分处理,或者自行扩展。一. 左键、右键消息区分我们以CListUI控件来分析说明。对于CListUI控件,在实际应用中有时我们需要响应双击或右键消息来执行不同操作,而目前的duilib中CListUI控件Item选择是无法区分左键右键消息的,究其原因duilib中对这原创 2016-05-29 13:13:21 · 3964 阅读 · 1 评论 -
Duilib学习笔记《06》— 窗体基类WindowImpBase
在前面的例子中我们发现,窗口都是继承CWindowWnd、INotifyUI,然后重载相关函数去实现。显然,我们发现窗口的创建流程实际上都是差不多的,主要只是在OnCreate加载的配置文件不同等等…所以,能不能创建一个公有的窗体基类呢?其实,在duilib中已经提供了一个窗体基类 WindowImplBase:在基类内搭建窗口的消息框架,各处理函数为虚函数,子类可以重载处理函数,实现其处理。原创 2016-05-28 21:31:04 · 775 阅读 · 0 评论 -
Duilib学习笔记《05》— 消息响应处理
在Duilib学习笔记《04》中已经知道了如何将窗体显示出来,而如何处理窗体上的事件、消息呢?一. 系统消息窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的部分消息的处理,需要重载该类的LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); 函数。在显示窗体部分我们创建窗原创 2016-05-28 21:26:35 · 1191 阅读 · 0 评论 -
Duilib学习笔记《04》— 窗体显示
在前面已经了解了duilib控件以及界面布局相关内容,接下来就要考虑该如何将xml中描述的布局通过界面展现出来。实际上在 Duilib学习笔记《01》 中我们已经简单提到过基本的流程及元素创建机制。这里我们直接用 Duilib学习笔记《03》最后提供的代码,下面我们就具体来说明:一. duilib调用设置#include "..\DuiLib\UIlib.h"usin原创 2016-05-28 21:20:04 · 1240 阅读 · 0 评论 -
Duilib学习笔记《03》— 控件使用
在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体。这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮、文本框、列表框等等)来完善。一. Duilib控件简介在之前空白窗体的基础上,在界面上添加了一些控件,让大家先对这些控件效果有个基本的认识。如下图所示:基本控件高级控件一些控件的基本原创 2016-05-28 21:09:10 · 2067 阅读 · 0 评论 -
Duilib学习笔记《02》—界面布局
界面描述XML文件Duilib主要是通过XML来进行界面的布局配置,程序通过读取并解析XML文件来创建对应的窗体。DuiLib的页面布局分为三类:窗体(Window)、容器(Contain)和控件(Control)。顾名思义窗体就是要创建的窗口,容器则相当于是窗体内的一个子窗体,可以在容器内添加容器或者控件,当然定义的位置也都是相对与容器内的左上顶点;控件就是一些常用的Button、Edit、原创 2016-05-28 19:26:45 · 1199 阅读 · 0 评论 -
duilib界面库消息流程分析
对照duilib源码,主要看下CWindowWnd类与CPaintManagerUI类中对消息分发的处理。1. CPaintManagerUI类的MessageLoop函数void CPaintManagerUI::MessageLoop() { MSG msg = { 0 }; while( ::GetMessage(&msg, NULL, 0...原创 2018-04-15 02:55:06 · 671 阅读 · 0 评论