首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
duilib专题
DuiLib介绍及其消息处理剖析
DirectUI技术 DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的"DirectUI"技术广 泛的应用于Windows XP,Vista,Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播放器,
阅读更多...
duilib学习------网易云信点击combo控件,程序崩溃
前面所用的Combox控件,在vs2013中使用的时候,会莫名的崩溃,这个问题查了挺久,偶然间从网上得到了解决办法。 布局文件中这样写: <Combo class="list" name="combo" height="30" margin="0,12,0,0" padding="6" bkimage="file='../public/combo/normal.png' corner='5,5
阅读更多...
duilib学习------网易云信combo控件
xml中加人: <!--combobox--> <Combo class="list" name="combo" height="30" margin="0,12,0,0" padding="6" bkimage="file='../public/combo/normal.png' corner='5,5,30,5'"/> (1)BasicForm.h bool OnCombo
阅读更多...
duilib 界面库 实现timer定时器
看了大神介绍的duilib感觉已被同龄人狠狠地甩在背后。所以痛下决心,之后要多花时间写代码。 大神教程传送门: http://www.cnblogs.com/Alberl/p/3341956.html 现在的问题是想基于duilib实现一个timer定时器。工程基础大概是在 http://www.cnblogs.com/Alberl/p/3343763.html 因为自己的东西是基于
阅读更多...
Duilib 窗口流程
从GameDemo.cpp看起 1回顾通常的sdk窗口程序流程:注册窗口-创建窗口-显示窗口-启动消息循环 1.1注册窗口类 Duilib中最平凡的真实窗口类是:CWindowWnd,关于窗口注册提供了两个函数,严格的说应该是几个: RegisterWindowClass() RegisterSuperclass() GetWindowClassName(
阅读更多...
duilib主界面中创建mfc控件问题-未解决
1.要用到的MFC相关的头文件,需要放在duilib的头文件#include"UIlib.h"之前; 2.工程的设置需要将 MFC的使用 这项 从使用标准window改为 在共享DLL中使用MFC; 3. 按照教程上的步骤,在 CControlUI* CreateControl(LPCTSTR pstrClass)这个函数实现中 创建CButton,在CButton::Create函数时会有断
阅读更多...
Duilib中的XML嵌套
duilib使用嵌套xml可以简化代码的书写,有利于模块化的页面布局分解,duilib库的xml嵌套主要有两种方式 方式一、以创建控件的方式嵌套xml 在CreateControl(LPCTSTR pstrClassname )中创建自定义的控件,并绑定到xml文件 1 CControlUI* FrameWnd::CreateControl( LPCTSTR pstrClassName )
阅读更多...
duilib的DuiMessageBox通用版
用duilib开发的客户端,难免会需要弹出一些模态框,如果能像mfc中的AfxmessageBox那样指定标题、文字、按钮样式和图标类型,就会很方便使用了,此处借助duilib开发了一个通用的模态弹框DuiMessageBox,样式是项目中开发的样式,读者可以根据需要自行修改替换贴图,从而改为适合于自己项目的风格。 这里的是无xml的,窗口和控件都在代码中创建,当然也可以写一个xml来生成窗口,
阅读更多...
如何在WTL和MFC中使用duilib及如何静态使用duilib库!(初级讲解 附带一个Demo)
关于duilib的历史,我也就不多说了,能看到这篇文章的人都是有一定了解才能找到这个的。 我直接说下对这个库的基本使用吧。 我个人对一些好技术都是比较感兴趣的. 因为个人原因 喜欢接触一个好技术。 所以当我遇到这个库的时候 毅然选择用这个库写项目中的一部分了,就是treeview控件。 因为我的项目原来已经是一个成型的项目了,只是作为改进。如果将现有
阅读更多...
MFC中应用duilib的相关兼容性问题处理
本文致力于解决在MFC中应用duilib的相关兼容性问题。 duilib非常强大,目前已经被各大公司广泛应用,但基本都是基于win32的;一份与MFC混合使用的DEMO,使得我们这些在老的MFC项目下久经UI之苦的看到了希望。 然而,就在我对这个MFCDEMO进行测试时,在基本功能正常的情况下,发现还是有少许的问题的,目前我发现的问题主要集中在键按键与鼠标按键方面,具体如下: 1
阅读更多...
duilib中CWebBrowserUI的使用问题解决
最近在使用CWebBrowserUI时,发现了几个问题,特此记录。 在xml中的标签如下: <WebBrowser name="ie" clsid="{8856F961-340A-11D0-A96B-00C04FD705A2}" delaycreate="false"/> 在程序中加载如下: CWebBrowserUI* pWebBrowser = static_cas
阅读更多...
关于duilib的CTreeViewUI扩展以支持节点拖放的手记
本文主要是记录下对于CtreeViewUI支持不同节点间的拖放功能的扩展过程,抛砖引玉,希望能让更多的人来丰富duilib的功能。 由于客户要求能够在树控件中在各个节点间进行节点拖放,此项目是应用duilib来实现的,但找遍了duilib的例子以及网上的资料,都没有相关可以拖放的树的信息,这下可难倒我这个刚入门的duiliber了,想来想去,拟定了如下三个探索方向: 1. 嵌入windo
阅读更多...
duilib 分析 之 OnInitLayout() 运用的时机 及应用
目录 一、OnInitLayout 1、窗口初始化布局时,会调用到 2、有什么用? 1)、位置信息
阅读更多...
duilib 之 鼠标按下事件是如何处理的?
相关文章:duilib 基础 之 事件响应方法集锦 一、控件中的事件是怎么来的 1、事件有时捕捉不到 一个duilib窗口,事件绑定的方法,通常是Attach系列或AttachBubbledEvent 系列。 但实际开发中,可能会发现,在某些场景下,是捕捉不到这些事件的,并不是因为这些事件没有发生,而是捕捉的方式不对。 一个例子如下: <Box bkc
阅读更多...
DuiLib的了解
(14 封私信 / 80 条消息) DuiLib和QT哪个作为界面比较好? - 知乎 (zhihu.com) Windows下的纯UI框架,轻量级。(支持WindowsXP到Windows 10的所有系统) 优点:体积小,速度快,代码结构简单。 缺点:一些细节功能实现不理想。 Qt的缺点是:体积大,个别场景的性能体验不如Duilib。
阅读更多...
duilib最简单的自定义列表
网上写的关于自定义列表的例子都过于复杂,对初学者不太友好。这里举了一个最简单的例子。 主界面的listdemo.xml内容如下: <?xml version="1.0" encoding="UTF-8" ?><Window size="500,500" caption="0,0,0,30"><Default name="VScrollBar" value="button1normalimag
阅读更多...
duilib:从底层分析duilib的大致实现逻辑
按我理解,概括起来,总体包括几个部分,注册窗口,创建窗口,创建控件树,绘制,消息机制。 创建窗口&&注册窗口: 1. RegisterWindow指定一个静态回调函数WndProc 2. CreateWindowEx最后一个参数把自己当作参数传递过去 3. WndProc收到WM_NCCREATE消息后,转换一下tagCREATESTRUCT,获取创建的窗口句柄hWnd还有上一
阅读更多...
duilib:设计一个“长度不够,按钮来凑“的duilib布局控件
本控件主要为了支持布局内元素很多,但是又不想显示滚动条,意图通过按钮来控制布局滚动的情形。 效果图如下: 当布局高度足以容纳所有子控件时: 当布局高度不足以容纳子控件时: 并且上下按钮支持点击翻页功能。 主要实现思路: 1. 控件构造的时候,把上下两个按钮以及中间的布局给添加到控件里。 2. 控件处理绘制事件的时候,通过判断中间的布局滚动条的显示状态来隐藏/显示上
阅读更多...
duilib:设计一个高可用,支持uri下载的duilib控件
先喵两句,本文只是提供一个具体思路,直接copy肯定编译不过,需要自己实现以下接口: 1. uri下载接口 2. 主线程调用接口(如果可能的话) 3. 线程池 duilib默认没有支持uri图片的控件,很多业务逻辑都需要自己实现,因此就有了以下的大胆想法,由于图片下载/显示的逻辑都很雷同,没必要一个个继承,然后重复写一套逻辑,显得代码很冗余,于是就有了以下想法,直接用模板类来实现这些接口。
阅读更多...
duilib加载active控件 浏览器控件
<?xml version="1.0" encoding="utf-8" standalone="yes" ?><Window size="800,600" sizebox="4,4,4,4" caption="0,0,0,32" mininfo="600,400"><VerticalLayout bkcolor="#FFF0F0F0" bkcolor2="#FFAAAAA0"><Horiz
阅读更多...
duilib 动态加载非资源图片
duilib 动态加载非资源图片 思路:使用bitmap加载外部图片,将Bitmap转为HBITMAP,加载到paintmanager中,然后控件加载paintmanager中的HBITMAP资源。 Bitmap btm(_T(“E:\pic\test.bmp”)); HBITMAP hBitmap = NULL;if (Gdiplus::Ok == btm.GetHBITMAP(NULL,
阅读更多...
Duilib 的WinMain函数学习
之前跑了一个基本例子;接下来准备再做一些; 看着它的WinMain函数里面,有几句不知道需不需要; 它是这样的;从别的示例里面来的; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow){CPaintManagerUI::SetIns
阅读更多...
Duilib List 控件学习
这是自带的一个示例; 一开始运行的时候List中是空的,点击Search按钮以后就填充列表框; 先看一下列表框列头是在xml文件中形成的; <List name="domainlist" bkcolor="#FFFFFFFF" ... menu="true"> <ListHeader height="24" menu="true"> <ListHeaderItem te
阅读更多...
DuiLib xml文件研究
它首先是控件布局的容器,类似如下; <VerticalLayout bkcolor="#FFD1E8F5" bkcolor2="#FFC6E0F1" bordercolor="#FF768D9B" bordersize="1" borderround="5,5" inset="1,0,1,0"> <HorizontalLayout height="24"> 垂直和水平布局容器
阅读更多...
计算机缺失duilib.dll的5种解决方法,轻松解决dll报错问题
计算机系统中丢失duilib.dll这个特定的动态链接库文件可能会引发一系列运行问题,具体表现和影响范围会根据该dll文件在系统或应用程序中的功能角色而有所不同。通常情况下,duilib.dll是一个与用户界面设计和渲染相关的库文件,它的缺失可能导致依赖于它的软件无法正常启动、运行时出现错误提示、窗口界面显示不全或者功能受限等问题。 这种情况的发生原因可能有多种。首先,可能是由于操作系统在更新或
阅读更多...
DuiLib——xml节点元素属性介绍
DuiLib——几种控件的常规属性介绍 在官方资源的基础上做了进一步整理和备注,便于理解适用 重点部分: bkimage="img.png":用处:设置背景图片。 ( file=""从路径获取图片。 res="", restype=""从资源获取图片。 mask:如位图,要去掉某一颜色。 corner:这是九宫格画法的坐标。形如"35,19,62,40" 就是取图片的
阅读更多...