`
tianfeng722
  • 浏览: 7832 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

【转】使用DirectUI技术实现QQ界面

阅读更多
一.介绍

DirectUI技术说白了就是XML配置文件+图片+JavaScript控制界面。这点与网页css+图片+JavaScript十分相似,就是如开发网页一般开发桌面程序界面,这个开发效率当然大大的提高。将程序员从繁琐的界面绘制工作中解脱出来,专心开发逻辑代码。还能大大减少代码量,因为据统计,传统MFC程序中,界面代码大约占总代码的1/3强!也就是说,这个1/3的代码都可以由xml+javascript替代!

同理,如果网页开发时,每个图片都需要由web程序绘制,你能想象一个网页的代码量有多少吗?

简直不能想象,而传统Window程序就是如此!

DirectUI技术最早被用于window xp资源管理器左边栏,被称为task folder.而DirectUI被广为国人所知,还得感谢腾讯公司。QQ2009的界面就是使用DirectUI技术开发的。类似的有微软的MSN,OCS和百度Hi。最近的Office2007 Ribbon界面,如果使用Spy++查看,可以见到一个名为"NetUI"的窗口,其实这也是微软内部DirectUI的一个变种。不过无论是微软,腾讯,还是百度,都使用了DirectUI技术来开发自己的软件界面,却不肯将其公开。本文将介绍如何使用DirectUI技术开发一个类似QQ的界面演示程序。

二.背景

与DirectUI最相似的要数微软最近推出的WPF,其设计思想是相同的。只不过WPF只能运行于托管环境下。window下的C++程序员一直呼吁微软推出native WPF,也就是非托管的WPF。不过微软给出的答案是:NO。所以WPF将定位于为.NET战略服务。使用WPF开发的界面程序,必须带上庞大的.NET运行环境。不过随着Window 7的普及,这个状况会有所改变(window 7继承了.NET环境)。

不过,我想,如果许多公司的产品都是需要支持Window XP(最少QQ现在还是支持Window 2000),所以WPF不是桌面应用程序界面开发的首选。

三.实现

废话不多说,先看演示程序的图片,足够以假乱真吧?!

在xml文件中也引入了网页中样式(style)的概念,style控制着网页中一个元素的外观。同理,directui xml文件中的样式(style)控制着一个控件的外观。同样的一个button,使用了不同的style,外观也不一样。如下面的代码及图片所示。

参照网页开发中的JavaScript,DirectUI JavaScript可以控制控件的状态、文本、显示/隐藏、位置等等属性。DirectUI JavaScript是基于事件,比如在button1点击事件中,改变button2的文本。或者button1点击事件之后,button1就要禁用。像这样的需求,在界面开发中是比较常见的。

在c++代码中,剩余的只是界面与程序逻辑的借口。比如,QQ2009中从服务器接收添加用户的通知,然后操作界面将此用户显示出来。如此看来,c++代码中完全没有了绘制界面的代码。

四.后话

DirectUI是个好技术,只是微软不愿将其公开,其中最大的原因是与它的.NET战略冲突。而由DirectUI技术演变而来的WPF只适用于托管环境。不过,还是有几个公司或者个人开发了自己的DirectUI界面库。我知道的,有:

DirectUI.com // 公司开发的。居然连正式版和试用版一样!?

Bodsoft DirectUI // 公司开发的。有试用版。发现一个上市公司成功案例,www.94kuai.com 网宿科技

UIEasy DirectUI // 个人开发的,比较简单。没设计工具。

分享到:
评论

相关推荐

    vc6 DirectUI 模仿QQ界面

    本项目标题"vc6 DirectUI 模仿QQ界面"意味着我们将探讨如何使用VC6和DirectUI库来创建一个类似QQ的用户界面。QQ作为一款流行的即时通讯软件,其用户界面设计简洁且功能丰富,模仿它的界面可以学习到很多关于UI设计和...

    DirectUI界面开发实例

    DirectUI界面开发是一种高效、灵活的用户界面设计技术,它主要特点是无需依赖特定的图形用户界面(GUI)框架,而是直接在Windows API层面上进行绘制和交互。这种技术被广泛应用于许多知名软件如MSN、QQ、IGO和WOW中...

    使用开源的DirectUI界面库Duilib开发的山寨QQ

    2. **基于DirectUI技术**:Duilib利用DirectUI技术,直接在窗口设备上下文中绘制UI元素,实现了与系统主题的无缝集成,并支持硬件加速,提高了界面的流畅度和响应速度。 3. **事件驱动**:Duilib采用事件驱动模型,...

    direct ui使用说明文档

    微软公司从Windows98、Windows2000再到今天...本指南详细介绍了DirectUI界面库的使用方法,通过本指南的学习可以让我们了解DirectUI界面库,掌握DirectUI Builder的使用方法和DirectUI界面库与程序集成开发的相关技术。

    Direct UI 模仿qq

    在“模仿qq的Direct UI技术”这个主题中,我们将深入探讨如何使用Direct UI来构建类似QQ的用户界面。 首先,了解Direct UI的核心概念是非常重要的。Direct UI并不是一个独立的库,而是利用DirectX的组件,特别是...

    vc++制作DirectUI界面.windows DirectUI界面制作教程-这是目前网上能找到的最详细的教程了+源代码

    windows DirectUI界面制作教程-这是目前网上能找到的最详细的教程了+源代码 windows任务栏也是用此技术制作的 qq,微信,office,MSN的界面都是用此技术制作的

    DirectUI for VC6.0(开源).rar

    3. **绘图和渲染**:DirectUI 使用GDI+或DirectX进行图形绘制,提供了丰富的绘图功能,可以实现自定义的界面样式和动画效果。 4. **布局管理**:DirectUI 提供了网格、堆栈、表格等多种布局方式,方便开发者组织...

    模仿QQ好友管理器界面代码(基于DirectUI界面库SOUI)

    QQ好友管理器界面代码是基于DirectUI界面库SOUI实现的一个项目,旨在提供类似QQ应用中的好友管理功能。DirectUI是一种高效、轻量级的界面开发技术,它使用C++和GDI+来构建用户界面,相比传统的Windows API,DirectUI...

    Delphi7-10_DirectUI 支持Unicode.rar

    标题中的"Delphi7-10_DirectUI 支持Unicode.rar"表明这是一个关于使用DirectUI库在Delphi 7到Delphi 10版本中实现Unicode支持的资源包。DirectUI是Microsoft DirectX的一部分,它提供了一种创建高效、自定义用户界面...

    高仿QQ2012登录界面 源代码

    "directUI"是一种用户界面开发框架,它允许开发者使用DirectX技术来创建高性能、高保真度的图形用户界面。在本项目中,DirectUI可能被用来实现复杂的动画效果、自定义控件和高度定制的界面元素。 【压缩包子文件的...

    Ex_DirectUI自绘例程 QQ音乐地址提取源码

    Ex_DirectUI自绘例程和QQ音乐地址提取源码是两个相关但不同的技术主题。首先,我们来深入了解DirectUI自绘技术,然后再探讨QQ音乐地址的提取。 **DirectUI自绘技术** DirectUI是一种用户界面(UI)开发技术,它...

    高仿QQ电脑管家8界面(源代码)

    【标签】"MFC 界面 DirectUI QQ电脑管家"明确了本项目的核心技术点,即MFC的界面编程和DirectUI的使用,同时也表明项目与知名的QQ电脑管家应用有关。 在【压缩包子文件的文件名称列表】中,有两个文件:test.txt和...

    directui--demo

    从网上收集的DirectUI资料,可以轻松实现类似360,QQ的界面。其中有几个是收费版的demo,有几个是开发源码的demo。有源码的几个工程中的控件都不是标准的Windows控件,当然没有收费版的方便。如果需求不是很大,可以...

    高仿QQ2012登录界面

    在这里,它可能意味着这个高仿登录界面采用了DirectUI技术来实现更加流畅、动态的视觉效果和交互体验。 【文件名称解析】 "QQ.exe" 是这个项目的主执行文件,即用户运行后会看到QQ2012登录界面的程序。EXE文件是...

    高仿QQ2012登录界面 修改版

    从以上信息可以推断,这个项目可能是一个个人开发者或者小团队为了学习或者展示技能,使用DirectUI技术制作的QQ2012登录界面的复刻版。用户可以通过下载并运行唯一的QQ.exe文件来体验这个界面。虽然目前未提供源代码...

    精美漂亮高仿QQ2012登录界面MFC源码

    1. **用户界面设计**:MFC的CDialog类用于创建对话框,开发者可能通过重载OnPaint()函数并使用CDC(设备上下文)类进行绘图,实现界面的自定义绘制,以达到QQ登录界面的效果。 2. **控件使用**:MFC中包含了多种...

    QQ2104 UI 模仿

    1. DirectUI:DirectUI是一种用户界面开发框架,它允许开发者使用XML来描述界面布局和样式,从而实现更加灵活和高效的UI设计。相比传统的Win32 API编程,DirectUI提供了更高级别的抽象,使得UI元素的创建和管理更加...

    炫彩界面库(DirectUI,C&C++,v1.3.1)

    2.采用DirectUI设计思想,在窗口内无子窗口,界面元素都是一个逻辑上的区域,以方便开发出炫彩高效的软件. 3.界面效果出众,解决了传统UI子窗口抖动,闪烁,效率低,代码臃肿等问题,让您的软件一跃而出. 4.基于炫彩界面库...

    QQ群界面自定义修改

    3. **ex_directui.ext**:这个名字暗示了它可能与DirectUI有关,DirectUI是微软DirectX的一部分,常用于游戏和图形界面开发。在QQ群界面修改的上下文中,这可能是一个扩展模块,提供了更高级的界面渲染和交互能力。 ...

Global site tag (gtag.js) - Google Analytics