directui

简介:

DirectUI

DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP,Vista,Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播放器,即时通讯工具MSN Messager等。   

DirectUI好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。国外如微软,国内如腾讯,百度等公司的客户端产品多采用这种方式来组织界面,从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。

DirectUI 旨在满足客户端界面快速开发的需要,同时融入业界前沿的皮肤技术,为用户创建更加高效,专业的界面。   

2.1 DirectUI 主要特性   

◆ 支持皮肤对象的布局   

◆ 支持皮肤脚本(JavaScript)控制,可以让界面与逻辑彻底分离   

◆ 支持bmp、png、jpg、gif、tga等图片格式   

◆ 支持多图层Alpha混合特效   

◆ 提供界面设计工具DirectUI Builder,支持拖拽式界面设计,让界面开发所见即所得   

◆ 开放式开发平台,所有控件均为插件方式管理,支持用户自定义控件开发,与DirectUI平台无缝兼容   

◆ 支持Windows平台所有的开发工具(VC++、VB6、VS.Net、PowerBuilder、Delphi、C++Builder、E语言)   

◆ 支持所有标准控件的换肤   

◆ 支持皮肤对象的导出与导入   

◆ 支持Windows主题导入,让标准界面皮肤的制作简单快捷   

◆ 让客户端代码简洁明了

要想学习DirectUI技术,到网上查了一下,得先学习好Skin++技术,所以,先看一下什么是Skin++吧

Skin++,系统软件,采用独特的软件界面开发技术,让原本复杂繁琐的界面编程变得轻松自如,随着换肤技术的不断进步,Skin++不仅是功能强大的换肤控件,而且是一款非常通用的换肤插件。只需要在您的程序中添加一句代码,Skin++就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能。

Skin++ 特性  

◆ 换肤彻底,支持Windows系统对话框与控件换肤;   

◆ 换肤全面,支持所有的Windows标准控件;   

◆ 支持所有Win32/Win64平台,包括.Net应用程序;   

◆ 使用简单,只需一行代码实现整体换肤;   

◆ 可视设计,提供皮肤设计工具,所见即所得的设计开发环境;   

◆ 色调变换,支持皮肤色调变换,每一套皮肤都拥有N种色调风格;   

◆ 支持广泛的开发工具, VC/VB/Delphi/C++Builder/VS. Net/PowerBuilder/E;   

◆ 支持流行的Windows操作系统;   

◆ 皮肤资源海量,提供方便的皮肤转换工具,可以将目前主流的皮肤主题转换成Skin++格式;   

◆ 支持Unicode,提供多种编码格式;   

◆ 支持静态库链接,与客户程序可以进行无缝整合;   

◆ 支持第三方控件;   

◆ 界面与业务逻辑彻底分离;

Skin++ 实现原理  

Skin++属于第二代的外挂式的界面库。   

Skin++ 提供了SkinBuilder 工具将所有控件的资源全部设计成为一个独立的文件,便于在应用程序外部独立地进行增删改操作。   

Skin++ 主要采用Hook与子类化技术来实现应用程序的自动换肤。

Skin++换肤的大致流程  

1、应用程序启动,加载Skin++库;   

2、执行Skin++加载皮肤文件API函数;   

3、Skin++ 安装窗口过程等类型Hook,准备截获应用程序所有窗口的创建事件;   

4、Skin++ 收到窗口创建等消息,根据类名、风格等一些条件来判断是否对该窗口进行子类化;   

5、窗口子类化即可以收到该窗口所有的消息;   

6、根据不同的消息进行相应的处理。如:WM_PAINT消息,Skin++对其进行绘图的操作;   

7、绘图中需要用到图片、文字、字体等资源即根据ID、名称等条件到皮肤文件中去查找;   

8、控件运行过程中,各种界面行为的变化均可通过处理消息与API函数来进行;   

9、控件销毁时,Skin++即对其进行反子类化,将Skin++换肤前的消息过程地址重新设成当前的消息过程;   

10、控件所有的消息不再经过Skin++消息处理函数。控件执行其默认的窗口消息处理函数;   

11、应用程序退出,Skin++库被卸载,在卸载之前Skin++获得通知,Skin++便在内部执行Hook的反初始化与资源文件的清理。

Skin++ 支持的开发工具  

支持VC++各种版本:VC6,VC2003,VC2005,VC2008;   

支持VisualStudio. Net各种版本:VisualStudio. Net 2003, VisualStudio. Net 2005, VisualStudio. Net 2008;   

支持 PowerBuilder 各种版本:PowerBuilder 6.0,7.0,8.0,9.0,10.0,10.5,11.0;   

支持 Delphi各种版本:Delphi 4,5,6,7,8,2005,2006;   

支持C++ Builder 各种版本:C++ Builder 4,5,6,2006;   

支持E语言各种版本。

目录
相关文章
|
4月前
|
存储 算法 安全
|
7月前
|
编解码 Ubuntu 算法
Ubuntu桌面图标指南:一文了解如果设置ubuntu 软件图标
Ubuntu桌面图标指南:一文了解如果设置ubuntu 软件图标
1687 0
|
7月前
|
存储 安全 算法
【C++ 17 新特性 】拥抱现代C++:深入C++17特性以获得更高效、更安全的代码
【C++ 17 新特性 】拥抱现代C++:深入C++17特性以获得更高效、更安全的代码
2325 1
|
API C# Windows
C#实现操作Windows窗口句柄:遍历、查找窗体和控件【窗口句柄最全总结之一】
C#对Windows窗口或窗口句柄的操作,都是通过 P/Invoke Win32 API 实现的,DllImport引入Windows API操作窗口(句柄),可以实现枚举已打开的窗口、向窗口...
3918 0
C#实现操作Windows窗口句柄:遍历、查找窗体和控件【窗口句柄最全总结之一】
|
C# C++
wpf C# 操作DirectUI窗口 SendMessage+MSAA
原文:wpf C# 操作DirectUI窗口 SendMessage+MSAA 最近做一个抓取qq用户资料的工具,需要获取qq窗口上的消息,以前这种任务是用句柄获取窗口中的信息,现在qq的窗口用的是DirectUI,只有窗口句柄,没有控件句柄,句柄这条路走不通了。
2265 0
|
2天前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践
|
4天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
5352 18
|
16天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
8天前
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。
|
4天前
|
人工智能 容器
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
本文介绍了如何利用千问开发一款情侣刮刮乐小游戏,通过三步简单指令实现从单个功能到整体框架,再到多端优化的过程,旨在为生活增添乐趣,促进情感交流。在线体验地址已提供,鼓励读者动手尝试,探索编程与AI结合的无限可能。