首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
duilib 扩展list
2024-10-23
duilib 之 List控件
List控件是我们常用到的控件,也是应用很广泛. 对LIST控件添加元素有两种方法,一种是直接在XML中写死元素,另一种是动态创建.另外,LIST的应用也分为两种,一种需要表头,另一种是不需要表头.对应带表头的LIST,还会分为可拖动表头,和不可拖动表头,以下将会一一举例说明. 先看在XML中添加元素,格式如下: <List name="list_data" float="true" pos="0,10,0,0" width="6
Duilib扩展《01》— 双击、右键消息扩展
用过duilib的可能会发现,duilib中有些控件没能很好的区分左键.右键等消息.所以根据实际需要,我们需要进行相关区分处理,或者自行扩展. 一. 左键.右键消息区分 我们以CListUI控件来分析说明.对于CListUI控件,在实际应用中有时我们需要响应双击或右键消息来执行不同操作,而目前的duilib中CListUI控件Item选择是无法区分左键右键消息的,究其原因duilib中对这块的处理都是发送的itemclick消息.具体可查看duilib中UIList.cpp文件中CListCon
改进duilib的richedit控件的部分功能
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41208207 如果要使用透明异形窗体功能,首先要改进duilib库让他本身支持(可以下载duilib扩展群群主改进的库,或者下载我的库),然后要开启窗体的bktrans属性.这时只要使用透明的背景素材就能做出透明异形窗体.但是透明窗体并不好驾驭,会带来很多麻烦.其中之一就是原Edit控件无法使用,这时改用Richedit控件是不错的选择. RichEdit有很多优势,一
Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
转载请说明原出处:http://blog.csdn.net/zhuhongshu/article/details/40740353,谢谢~~ 我把我自己使用的Duilib库和Uilib库都上传到了GitHub,完整的库代码下载地址(两个地址二选一): GitHub:https://github.com/redrains/DuiLib_Redrain TaoBao:http://code.taobao.org/svn/redrain_duilib/trunk (淘宝svn,请用svn直接检出,网页
duilib List控件,横向滚动时列表项不移动或者移动错位的bug的修复
转载请说明出处,谢谢~~ 这篇博客已经作废,只是留作记录,新的bug修复博客地址:http://blog.csdn.net/zhuhongshu/article/details/42264673 之前就在群里挺群友朋友说道,使用List控件,里面加入ListContainElementUI元素,当List出现横向滚动条时,滚动条滑动后元素不跟着滑动或者滑动后位置不正确. 关于List控件的扩展,很早就有人做过了: http://blog.csdn.net/xdrt81y/article/deta
duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复
转载请说明出处,谢谢~~ 群里有朋友提到了使用Combo控件时,当下拉列表出现,此时鼠标滚轮滚动,下拉列表就自动消失了.我看了一下源码,这个bug的修复很简单. CComboUI控件被单击时创建CComboWnd窗体来模拟下拉菜单.CComboWnd类在HandleMessage函数里处理了鼠标滚动消息WM_MOUSEWHEEL,他把这个消息转发给CComboUI的DoEvent函数去处理,而CComboUI的DoEvent函数处理对应的UIEVENT_SCROLLWHEEL消息,又转而调用了S
duilib relativepos属性导致控件错误的bug修复
转载请说明出处,谢谢~~ 我在仿酷狗音乐播放器的开发日志系列里,曾经提到了这个bug,文章地址为:http://blog.csdn.net/zhuhongshu/article/details/38145365.但是当时的开发日志里,我对bug的描述过于简单.所以重新说明一下. 使用Duilib时,当为一个控件指定了float属性,也就是使用了绝对布局,那个控件的位置和大小就固定了.同时Duilib提供了另一个属性:relativepos.这个属性在官方的属性列表里面没有给出,我这里补充一下:
提高duilib的richedit控制的一些特征
转载请注明原始出处.谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41208207 假设要使用透明异形窗口功能,首先要改进duilib库让他本身支持(能够下载duilib扩展群群主改进的库.或者下载我的库),然后要开启窗口的bktrans属性. 这时仅仅要使用透明的背景素材就能做出透明异形窗口.可是透明窗口并不好驾驭,会带来非常多麻烦.当中之中的一个就是原Edit控件无法使用.这时改用Richedit控件是不错的选择. RichEdit
仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI做得,所以产生这几个bug的原因还在于他们两个,在<仿酷狗音乐播放器开发日志十一 ——CTreeNodeUI的bug修复>中已经修复过一个动态添加控件的相关bug,这属于第二次修复了.关于第一次bug的修复,后来 Duilib扩展群的 joe 又进行过比我更全面的修复,我现在使用的CTreeVie
DuiLib学习笔记(二) 扩展CScrollbar属性
DuiLib学习笔记(二) 扩展CScrollbar属性 Duilib的滚动条滑块默认最小值为滚动条的高度(HScrollbar)或者宽度(VScrollbar).并且这个值默认为16.当采用系统样式的滚动条,或者 Troy的源码(https://github.com/qdtroy/DuiLib_Ultimate)自带的样式时,是没有问题的,因为这两种样式默认高(宽)度都是16,当滑块最小时,也有16*16,背景图片(九宫格式)不会出拉伸BUG.但是,当自定义背景图片时,如果图片本身大小超过16
duilib进阶教程 -- 扩展duilib的消息 (11)
duilib并没有提供双击和右键消息,所以需要我们自行扩展,这里以添加双击消息为例, 在UIDefine.h里,我们只看到了DUI_MSGTYPE_CLICK消息,却没有看到双击消息,因此需要在这里添加一个双击消息: #define DUI_MSGTYPE_DBCLICK (_T("dbclick")) 在UIManager.h里可以看到 UIEVENT_DBLCLICK.UIEVENT_RBUTTONDOWN等消息,这是因为它的右键和双击等消息只给了内部的控件使用,这时我们需要让他传
关于duilib中的list的扩展探索
原文地址:http://blog.csdn.net/tragicguy/article/details/21893065 今天在做一个程序的界面时,需要在一个列表中显示除文字以外的其他控件,如:Edit.Button.Combo等:我做界面使用的是duilib,其自带的CListUI并不能满足此项功能,需要进行扩展,在此记录,以便后续使用需要. 先看一下实现的效果: 今天我们的扩展主要包含如下部分: 1. 表头支持控件 在ListUI中,表头是CListHeaderItemUI,而这个类是从CC
扩展duilib edit控件的提示功能和多种文字颜色(解决edit为password显示不正常的bug)
参考博客:Redrain 转载:http://blog.csdn.net/zhuhongshu/article/details/41786407 在Redrain博客的基础上做了修改 1.CEditUI的DoEvent函数添加一下代码 ///////////////////////// if( event.Type == UIEVENT_SETFOCUS && IsEnabled() ) { ) { SetText(GetText());//说明用户有输入,显示用户输入 } else {
Duilib初级控件扩展一例: 具有鼠标滚动消息的OptionUI
转载:http://www.cnblogs.com/memset/p/Duilib_MouseWheelOptionUI_Deprecated.html
Duilib源码分析(六)整体流程
在<Duilib源码分析(一)整体框架>.<Duilib源码分析(二)控件构造器—CDialogBuilder>以及<Duilib源码分析(三)XML解析器—CMarkup>中我们已从粗略的角度去分析框架操作流程和消息流程,只能对其有基本的印象,此处我们将通过实际的举例分析,duilib创建的工程,在整个资源解析.控件创建.控件加载与绘制,控件数据处理等管理的整个过程进行整合: 为了便于分析,我们仍然从项目中附带的工程“TestApp1”进行更深入的学习,以下执行流程为
Duilib源码分析(四)绘制管理器—CPaintManagerUI
接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏.结构: 枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型TEventUI结构中的各Type值,从UIEVENT__FIRST至UIEVENT__LAST分别定义了 键盘按键事件 (UIEVENT__KEYBEGIN~UIEVENT__KEYEND).鼠标事件(UIEVENT__MOUSEBEGIN~UIEVENT__MOUSEEND).以及其他的几个事
Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备三)
接下来,我们将继续分析UIlib.h文件中其他的文件, UIContainer.h, UIRender.h, WinImplBase.h, UIManager.h,以及其他布局.控件等: 1. UIRender.h:UI渲染器,其中cpp文件中,定义的ZIP压缩相关的数据结构,以及宏操作,与XUnzip.cpp中一样的(个人认为可以提取出来作为共用的一部分),此外还有stbi_load_from_memory. stbi_image_free,涉及到图片加载操作,具体详细细节可参考s
Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备一)
上节中提到在遍历创建控件树后,执行了以下操作: 1. CDialogBuilder构建各控件对象并形成控件树,并返回第一个控件对象pRoot: 2. m_pm.AttachDialog(pRoot);m_pm.AddNotifier(this):将控件attach到CPaintManagerUI m_pm中管理,此外INotifyUI子类对象被加入到m_pm: 这样m_pm不仅管理控件对象也对消息监听接口Notify回调,这样用户可以在Notify中实现自己的感
Duilib源码分析(一)整体框架
Duilib界面库是一款由杭州月牙儿网络技术有限公司开发的界面开源库,以viksoe项目下的UiLib库的基础上开发(此后也将对UiLib库进行源码分析):通过XML布局界面,将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率.一般常用于开发小型项目Windows桌面客户端软件:其子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上.目前开源协议以BSD发布,可使用于商业应用,好了,其他更为详细的介绍,请查阅其官网或百度. 源码获取: 目前duilib不在被维护,基本上网络中
谈谈duilib
据我所知,duilib已经不再维护了,q群也不再对外开放了. 尽管不再更新,但duilib的学习价值还是很好的.当有一定基础后再扩展duilib的功能,或根据duilib学习到的知识去着手写自己的界面库,都是可以的. 最近我在看demo和源码,找到一些不错的学习资料,给自己留底也好,分享也好,都贴在这里吧 这个应该是个个人的站,里面有duilib的学习总结,有需要的筒子可以看看 然后经过一个月时间后,我发现自己傻逼了,下载到是旧的工程,然后,最新的应该是这个了吧
如何给开源的DUILib支持Accessibility
最近的工作是给开源的DUILib支持Accessibility, 一些经验记录并分享下. 微软的Accessibility其实Windows平台上一个挺重要的东西, 尽管在国内不受重视,但是如果你的软件要出口欧美,Accessibility是必须的, 不然国外正规单位(政府,学校,大公司等)是禁止采购的. 如果我们的软件用的是Winodws标准控件,一般Accessibility是系统默认内置支持的 (当然这也不是一定的,据我测试系统的Date Time Picker控件是不支持MSAA的).因
热门专题
i5 9400f b360 1050ti黑苹果
dataworks使用
css背景图片无视内补白
.net core测试500页面
mac vscode 安卓模拟器
freeswitch win命令
cloudcompare 保存pcd文件报错
functional 模板渲染后执行
SQL Bulk 变量
.gitignore配置全局
使用powershell加域
Data转Bytes
代码混淆 .net core
wnmp在Windows10系统下访问不到环境
仅支持google移动服务(GMS
Ubuntu cmake编译c
guid是否为 nul
opencv java 内存激增
vba查找指定内容单元格位置
c#用了定时器是不是只能在定时器里运行了外面还能运行吗