关闭

DirectUI界面编程(零)简介

标签: duilibdirectui
3183人阅读 评论(0) 收藏 举报
分类:

有过Win32、MFC编程经验的朋友应该都知道,传统Windows应用中的按钮、编辑框等控件都是一个子窗口,操作系统通过窗口句柄来唯一标识该窗口。 使用Windows 标准控件创建用户界面,美化起来是相当困难的,例如我们需要使用一张位图作为按钮的背景,MFC应用需要以下几个步骤:

  • 1.继承CButton类。
  • 2.为按钮添加BS_OWNERDRAW样式。
  • 3.重写DrawItem函数,在该函数中调用绘图API进行按钮的绘制。

要对每一个控件都进行自绘工作量是相当大的,使用DirectUI结合目前市场上的界面库进行界面设计就简单多了。

DirectUI是相对于传统控件而言的一种新的界面设计技术,笔者看来DirectUI只是一种界面设计理念,即我们的按钮、编辑框等不再以窗口句柄的形式创建,而是在主窗口客户区的一个逻辑区域。

例如通过DirectUI思想创建的按钮,其实只是在主窗口中绘制的一张图片,当用户点击图片在该窗口中的区域时,我们就认为是该"按钮"的点击事件,为了使得按钮更加逼真,我们还可以在点击时绘制另一张按下状态的按钮图片。

目前基于DirectUI设计思想实现的界面库也是比较多的,而且很多都是免费或者开源的,下面介绍笔者比较喜欢的两款:

1.免费界面库SkinUI

官方网站:http://www.skinui.cn/index.htm
特点:逻辑与界面分离:支持xml文件进行窗口布局,更改界面布局文件,不影响程序功能,甚至不需重新编译。
炫彩换肤:SkinUI界面库具备一键换肤的功能,除了提供一套默认皮肤外,还可以自由配置多套系统皮肤。

官方Demo:
这里写图片描述

这里写图片描述

上面是使用SkinUI构建的360安全卫士和360压缩界面,效果还不错吧!

2.开源界面库Duilib

Duilib是一款基于DirectUI思想实现的一款开源界面库,支持xml界面布局,界面设计与业务逻辑分离,具有强大的事件处理机制。而且提供了一款所见即所得的界面编辑器UIDesigner。
这套界面源码最初托管在Google Code上。
项目地址:http://code.google.com/p/duilib/,基于众所周知的原因,目前最新的源码已经迁移到Github。
Github地址:https://github.com/duilib/duilib

下面我们来看看官方提供的Demo:
这里写图片描述

这里写图片描述

效果也还不错吧,开源的东西一向比较受到笔者的青睐,Duilib也是笔者想详细介绍的一款界面库,从下节开始我们一起学习这套界面库的使用方法。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

DirectUI界面编程(一)创建第一个应用

1.获取Duilib库文件通过上一节大家对DirectUI界面设计有了初步的了解,本节开始我们一起学习Duilib界面库的使用。 首先我们需要获取Duilib库,目前最新版本为2.0,最新版本源码托...
  • Rongbo_J
  • Rongbo_J
  • 2015-07-11 15:54
  • 3482

【个人收藏】Direct UI 与一个简单的开源DIRECTUI界面框架

在界面开发中,目前DirectUI是个热门的技术名称,因为众多的知名公司都是用DirectUI方式作出了很炫丽的界面。 因为传统的Win32/ MFC大家都比较了解,所以首先我们分析Direct...
  • tgzjz
  • tgzjz
  • 2015-04-24 15:21
  • 5932

UILite——C++类库(XLib非界面功能库+UI和DirectUI库)简介

UILite是一款继承自WTL以及和界面无关的功能库的合集,能够生成很小的可执行文件。如果你也象我一样希望自己的程序又小又快的话,UILite就是你的选择。当然,我们还要克服一些障碍:   1)...
  • i7thTool
  • i7thTool
  • 2013-06-14 13:29
  • 2987

DirectUI界面编程(一)创建第一个应用

1.获取Duilib库文件通过上一节大家对DirectUI界面设计有了初步的了解,本节开始我们一起学习Duilib界面库的使用。 首先我们需要获取Duilib库,目前最新版本为2.0,最新版本源码托...
  • Rongbo_J
  • Rongbo_J
  • 2015-07-11 15:54
  • 3482

DirectUI界面编程(六)实现右键弹出菜单

本节向大家介绍一下右键弹出菜单是如何实现的。效果如下,在窗口中点击鼠标右键弹出菜单,点击菜单项能够响应菜单点击事件。 使用Duilib库实现的弹出菜单,实际上也是一个Windows窗口,因此我们...
  • Rongbo_J
  • Rongbo_J
  • 2015-08-01 12:33
  • 2920

DirectUI界面编程(三)从XML文件中加载界面

Duilib支持xml界面布局,使得界面设计与逻辑处理相分离,本节介绍如何从xml文件中加载界面元素。 我们需要以下几个步骤: 创建并初始化CPaintManagerUI对象。 创建CDialogB...
  • Rongbo_J
  • Rongbo_J
  • 2015-07-19 14:47
  • 1812

DirectUI界面编程(四)界面布局详解

Duilib的界面布局使用xml文件进行描述,在Duilib v1.1版本的xml布局文件中我们可以使用以下这些标签(后续版本标签有扩充): 这些标签总的来讲可以分为三类: 窗口类,该类别中只有一个...
  • Rongbo_J
  • Rongbo_J
  • 2015-07-24 22:53
  • 2990

开源一套DirectUI界面库

  • 2015-05-24 23:27
  • 3.72MB
  • 下载

开源wince/window directui界面框架

  • 2014-11-26 23:28
  • 1.98MB
  • 下载

免费的Delphi DirectUI界面库组件

  • 2017-03-09 11:46
  • 42.19MB
  • 下载
    个人资料
    • 访问:530702次
    • 积分:6180
    • 等级:
    • 排名:第4666名
    • 原创:130篇
    • 转载:33篇
    • 译文:22篇
    • 评论:159条
    统计
    Flag Counter
    小鼠
    个人简介
    Java工程师,参与过网上银行、短信平台、渠道整合平台等大型Java EE项目开发,2016年与清华大学出版社合作编写并出版《AngularJS入门与进阶》一书。

    图书封面:


    图书简介
    目前淘宝、京东等电商网站有售。
    点我购书
    联系方式: jiangrongbo@gmail.com
    博客专栏
    最新评论