Duilib
文章平均质量分 79
Marcelxx
这个作者很懒,什么都没留下…
展开
-
Duilib中的子类化
具体到DirectUI,我们要想使用我们自定义的窗口过程,同样需要子类化:HWND CWindowWnd::Subclass(HWND hWnd){ ASSERT(::IsWindow(hWnd)); //判断给定的句柄是否是一个已经存在的窗口 ASSERT(m_hWnd==NULL); m_OldWndProc = SubclassWindow(原创 2013-07-11 11:42:47 · 1284 阅读 · 0 评论 -
Duilib中各个类的简单介绍
来自:http://www.cnblogs.com/xubin0523/archive/2012/06/01/2530901.htmlDirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP、Vist转载 2013-07-31 10:31:25 · 1694 阅读 · 1 评论 -
DUILIB创建菜单窗口
转自:http://blog.163.com/zwei3666@126/blog/static/993128052012101272027399/先发一张效果图。支持多级扩展,支持菜单表头,支持文本居中/左对齐/右对齐三种方式,支持字体颜色设置,支持添加自定义控件,支持基本属性(背景颜色,图片,图标,宽高等)的自定义设置。 漂亮不? 咳~一般般吧~其实DuiLib里已经有个转载 2013-07-31 10:09:12 · 3354 阅读 · 1 评论 -
DUILIB源码分析
1 stdAfx.h* lengthof(x) 计算数组长度宏* MAX 两值最大* MIN 两值最小* CLAMP(x,a,b) x在a,b之间则取x否则取最小2 UIBase* UI_WNDSTYLE_ 窗口风格属性* UI_CLASSSTYLE_ 窗口类属性* DUITRACE(LPCTSTR pstrFormat, ...) 功能 - 调试信息转载 2013-07-31 10:28:33 · 1824 阅读 · 0 评论 -
DuiLib 源码分析——UIBase
DuiLib源码分析 ——以DuiLib 1.01版为分析目标 ——colin3dmax 分析于2011-6-16 19:44----------------------------------------------------------------------------------分析约定:private o------- 私有的成员变量或方法protect转载 2013-07-31 10:30:52 · 1101 阅读 · 0 评论 -
Duilib技巧:背景图片平铺
Duilib技巧:背景图片平铺贴图的描述方式有两种,其实看 // 1、aaa.jpg // 2、file='aaa.jpg' res='' restype='0' dest='0,0,0,0' source='0,0,0,0' corner='0,0,0,0' // mask='#FF0000' fade='255' hole='false' xtil转载 2013-08-02 17:32:14 · 1904 阅读 · 0 评论 -
Dui学习笔记
duilib学习笔记2012年11月3日 — Asp J 原创文章,转载请注明:转载自Soul Apogee本文链接地址:duilib学习笔记前段时间对皮肤引擎比较感兴趣,于是在VS第一人称快的无法直视的dot大神推荐下,看了一个小巧又好用的皮肤引擎:duilib。1. duilib简介duilib是一个开源的DirectUI界面库,简洁但是功能强大。而且还是B转载 2013-08-05 10:23:09 · 1145 阅读 · 0 评论 -
Duilib中的控件消息
所有继承自CControl类的控件都有事件消息,都可以有DoEvent函数进行事件消息响应。其余的,可以自定义DoEvent事件,然后自己实现DoEvent函数进行响应。 TEventUI event; event.Type = UIEVENT_KEYDOWN; event.chKey = (TCHAR)wParam原创 2013-08-05 10:14:27 · 1547 阅读 · 0 评论 -
Duilib中CEventSource及CDelegate(事件委托)的简单分析
Duilib中CEventSource及CDelegate(事件委托)的简单分析分类: Duilib界面库 2013-04-16 18:24 167人阅读 评论(0)收藏 举报Duilib界面库1、CDelegate类:成员主要包含:函数的指针、函数所属对象的指针、invoke函数和其他方便使用的重载操作符;其实就是保存了一个对象指针和它的一个成员函数的指针转载 2013-08-02 17:42:27 · 1624 阅读 · 1 评论 -
MFC一些函数说明
BOOL IsWindow(HWND hWnd):该函数确定给定的窗口句柄是否标识一个已存在的窗口。原创 2013-07-11 12:51:12 · 937 阅读 · 0 评论 -
DUI类库介绍
DuiLib库 我们把它分为四个模块(核心,基础,控件,另外的库),当前有些也会把它分为5个模块(用户界面层,数据,事件处理,渲染模块,插件模块)我们先讲下四个模块里包含了那些类一.核心模块:UIMarkup(解析XML), CMarkupNode(节点),CRenderClip(渲染区域控制), CRenderEngine(渲染引擎), CPaintManagerUI(绘制管理者),转载 2013-11-06 13:10:44 · 1226 阅读 · 0 评论 -
DUILIB使用OXC插件问题!
作为一个方便大众的ActiveX控件,在C++中竟然只能在MFC被傻瓜式地操控是不对滴,而当这种专利居然在不引入afxwin.h和afxdisp.h的情况下都还要有所体现的时候,朕就hold不住了,誓要能死你个落伍的小玩意儿!经过这两天的搏斗,朕在没有整过activeX这小b玩意儿的情况下还是收获了一些技巧,特此记录下来以便日后查看,也为苦于在C++中手动添加ActiveX时想摆脱mf转载 2013-12-19 10:04:34 · 2678 阅读 · 0 评论 -
DuiLib 源码分析——UIManager
DuiLib源码分析 ——以DuiLib1.01版为分析目标----------------------------------------------------------------------------------分析约定:private o------- 私有的成员变量或方法protect x------- 受保护的成员变量或方法public +------- 公转载 2013-07-31 10:29:53 · 1163 阅读 · 0 评论 -
DUI控件
DirectUI技术开发界面 DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP、Vista、Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播转载 2013-07-30 14:23:43 · 1693 阅读 · 0 评论 -
Duilib第一讲:Duilib结构梳理
使用Duilib也有一段时间了,了解了许多,但由于工作匆忙的原因,很多东西都是现学现用,没有深层的思考!导致后面重复使用前面学过、用过的知识出现了许多的问题!因此,在此恰当的时间(了解许多,但很模糊的情况下)做一些梳理和总结!也希望能帮助到一些正在学习Duilib的同仁! 第一步,包含duilib头文件。#include "xxxUIlib.h" //xxx为UIlib.原创 2013-07-10 17:34:27 · 1983 阅读 · 3 评论 -
DirectUI笔记(一)窗口子类化
在看DirectUI的代码,尝试着写一些理解,可能有误,同时也不知道能写多少。写到哪算哪吧。先谈谈窗口的子类化。什么是DirectUI呢?DirectUI界面库取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。这个父窗口就是使用window转载 2013-07-11 11:04:15 · 1444 阅读 · 0 评论 -
DirectUI笔记(二)模块化
说到软件,“模块”无法绕过去的一个概念一个名词。我们在很多时候不同的场合会经常听到或说到这个词。在目前的软件开发中,软件模块的形式多种多样,比如一个MFC程序里,可能一个对话框或一个View就是可以定义为一个模块,C++中的一个类也可以是一个模块。软件模块不外乎几个作用,一个是完成一定的功能,这也是模块出现和存在最根本原因;一个是应对变化,软件做好以后一般来说是不可避免的药变化的,这个转载 2013-07-11 11:54:43 · 1282 阅读 · 0 评论 -
DUI中的函数说明
过年有些耽搁,深感抱歉。近日依旧在进行客户端界面使用DirectUI 进行尝试,由于一切控件均需要进行自绘,过程较为耗时。 控件的实现由CUIBaseCtrl基类开始定义如下: [cpp] view plaincopyprint?/* CLASS_BEGIN **********************************************转载 2013-07-11 11:37:55 · 1499 阅读 · 0 评论 -
Dui中函数说明2
客户端 目前客户端的实现,不少大公司采用了较为新潮的Direct UI技术,本项目中也考虑使用Direct UI,但可惜微软并没有提供可使用的Direct UI 封装,因此我们自己设计实现Direct UI,并在此基础上实现客户端UI部分的功能。 Direct UI 框架的实现并不复杂,就是繁琐,如抽象窗口,控件自绘制,设计完成消息循环与映射,资源管理...转载 2013-07-11 11:38:30 · 1060 阅读 · 0 评论 -
DUI异形窗口实现
使用分层窗口及透明png图片实现一个异形窗口搞Windows程序的人尽皆知分层窗口能够实现很多不错的效果,之前看过一些异形窗口的实现,所以就手痒也想自己搞一个玩一玩。自己动手实现过程才发现还是有不少问题的。基本思路是:1.将窗口扩展属性设置为分层属性WS_EX_LAYERED。2.选一张透明的png图片,并将其加载进来。3.创建与窗口兼容的内存设备上下文,以及兼容位图,将兼容位转载 2013-07-12 11:33:43 · 1303 阅读 · 0 评论 -
Dui程序Demo
先上效果图(自己感觉还不错):功能不完善,一是为了熟悉xml的写法,手写,不建议使用编辑器,二了为了理顺程序的流程,加入了部分注释。xml文件 程序代码://2012.10.16 by l0g1n。#include "stdafx.h"class CFrameWindowWnd:public CWi转载 2013-07-12 11:18:24 · 1061 阅读 · 0 评论 -
DUI程序Demo2(注意拖动程序的边框改变程序界面的大小,OnNcHitTest消息中处理)
注意拖动程序的边框改变程序界面的大小!!!duilib是一个windows下的皮肤库,用win32写的。。。先看个效果图吧:这个图片里有源代码,右键保存下图标,把后缀改为zip,即可。由于skin目录下的图片不便上传,需要自己加入合适的图片。 要使用duilib库,必须先把库导入,代码如下: 1 #include "xxx\UIlib.h" //xxx为UI转载 2013-07-12 11:32:17 · 2588 阅读 · 0 评论 -
DirectUI的消息流转
Windows是一个基于消息循环的系统,DirectUI同样遵循这样的消息流转。当界面呈现、用户点击、定时器等各种各样的消息一旦进入windows消息循环队列,系统自动调用该窗口的WndProc过程。对于DirectUI程序来说,因为所有的界面都是逻辑界面,均基于程序运行之初通过CreateWindowEx生成的原始窗口,因此,所有的消息最开始都会先流转到DirectUI中CWindowWnd类的转载 2013-07-11 16:00:08 · 1339 阅读 · 0 评论 -
DirectUI界面渲染流程
DirectUI是通过xml文件来描述界面的,DirectUI库通过解析xml文件来呈现界面,从而实现界面与逻辑的分离。当然,xml需要遵照特定的规矩描述界面元素的名称、坐标、大小、配色方案、背景图片等多种属性。下面我们给出一个xml文件的实例:xml version="1.0" encoding="UTF-8"?> size="500,350" caption="0,0,0,36" rou转载 2013-07-11 15:42:06 · 2112 阅读 · 0 评论 -
Dui网摘
http://bigasp.com/archives/573转载 2013-07-15 15:18:11 · 738 阅读 · 0 评论 -
duilib学习笔记
2012年11月3日 — Asp J 原创文章,转载请注明:转载自Soul Apogee本文链接地址:duilib学习笔记前段时间对皮肤引擎比较感兴趣,于是在VS第一人称快的无法直视的dot大神推荐下,看了一个小巧又好用的皮肤引擎:duilib。1. duilib简介duilib是一个开源的DirectUI界面库,简洁但是功能强大。而且还是BSD的license,所转载 2013-07-30 14:01:01 · 1106 阅读 · 1 评论 -
SetTimer的使用
etTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ; 其中 hWnd是和timer关联的窗口句柄转载 2013-12-25 13:41:39 · 2158 阅读 · 0 评论