Duilib自定义控件】的更多相关文章

新版博客已经搭建好了,有问题请访问 htt://www.crazydebug.com 在公司二期项目中为了将谷歌内核嵌入到duilib中,采用了自定义duilib控件的方法,由于也是第一次用duilib,边学边用,所有网上的资料给了我很大的帮助,尤其Redrain兄弟的文章给我启发很大,再次感谢互联网具有开源精神的程序员. 今天简单总结下duilib的自定义控件,要实现自定义控件需要做两件事情       1.继承现有的控件类创建新的控件类       2.让程序识别新的控件并可以在xml中使用…
转载:http://blog.csdn.net/panxianzhan/article/details/50772893 duilib在UIManager.h里的EVENTTYPE_UI枚举里定义了很多控件命令,如字符输入.双击.鼠标离开等等,然而这些事件不是在所有控件上都会得到处理,所以当我们有需要响应这些事件而对应的原生控件又没有处理时,那就要自己派生一个控件去处理这个的事情了.方法很简单:继承需要的控件,然后覆盖它的虚函数virtual void DoEvent(TEventUI& eve…
转载:https://www.jianshu.com/p/0fe8610dcc8d  // https://github.com/Washington-DC/Duilib-ListView  //这是上面的代码,能够正确编译并运行 https://www.cnblogs.com/Forever-Kenlen-Ja/p/7854357.html  //xml嵌套 https://www.cnblogs.com/crazydebug/p/5983676.html  //这里是自定义控件的一些说明,但…
代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子. 1.我们先给迅雷播放器加入下面那一排按钮. 和上个教程一样,我们可以选择直接放在主XML里面,也可以选择放到Container里面,在这里,为了让主XML的代码更简洁一点,我们选择放到单独的XML里面.而这个单独的XML就相当于一个自定义控件了,将控件名取为WndPlayPanel,XML取名为[WndPlayPa…
http://blog.csdn.net/harvic880925/article/details/8925650 http://blog.csdn.net/harvic880925/article/details/9632613 http://download.csdn.net/user/harvic880925…
接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏.结构: 枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型TEventUI结构中的各Type值,从UIEVENT__FIRST至UIEVENT__LAST分别定义了  键盘按键事件 (UIEVENT__KEYBEGIN~UIEVENT__KEYEND).鼠标事件(UIEVENT__MOUSEBEGIN~UIEVENT__MOUSEEND).以及其他的几个事…
    虽然duilib自带在MFC中使用duilib的Demo,但只是MFC窗口和duilib窗口不重叠的情况.如果要在MFC窗口中嵌入duilib控件,或者在duilib控件中嵌入MFC的控件的话,就没有Demo可以看了,其实Alberl开始也不知道怎么办,看了下ActiveXUI控件,这个就是结合HWND的,但是由于接触duilib不久,所以一时无法看懂ActiveXUI到底是怎么将win32的HWND画上去的,只好在群里问啦,多谢铅笔群的Troy大神指导:     当时解决完之后上传了代…
我想通过360demo的学习,大概就能把握duilib的一般用法,同时引申出一些普遍问题,和普遍解决方法.并在此分享一些链接和更多内容的深入学习..... 原谅我是一个菜鸟,什么都想知道得清清楚楚....god,还有一堆书要看,看完是否就会有豁然开朗的感觉呢? stdafx.h: #if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) #define AFX_STDAFX_H__A9DB83DB_A9…
大多数刚使用duilib的朋友时候非常依赖duilib自带的设计器,用他可以拖拉控件,可视化的做出自己想要的界面.可是用一段时间就会发现原带的设计器有很多bug,时不时会崩溃,支持的控件数量有限,属性数量也有限,导出的代码冗余.当时问了几个高手,大家建议不要使用设计器而应该自己手写xml代码.起初手写时感觉特别麻烦,可是用几天后你会发现手写要比使用设计器好得多:你可以更加了解duilib,熟悉每个控件的各个属性,对控件的控制也更加方便.而如果想称心如意的脱离设计器去编写xml文件,有非常有必要弄…
整个教程的代码下载:http://download.csdn.net/detail/qq316293804/6502207 (由于duilib进阶教程主要介绍界面,所以这个教程只给出界面相关的代码,完整代码请进<仿迅雷播放器教程>) 进阶教程汇总: duilib进阶教程 -- 在MFC中使用duilib (1) duilib进阶教程 -- 在duilib中使用MFC (2) duilib进阶教程 -- Container控件 (3) duilib进阶教程 -- XML嵌套及自定义控件 (4)…
转载请说明原出处,谢谢~~ 上篇日志说明了怎么让自定义控件响应右键消息.之后我给主窗体的标题栏增加右键响应,观察原酷狗后可以发现,在整个标题栏都是可以响应右键并弹出菜单的.应该的效果如下: 本以为像上一片博客那样,处理标题栏的布局的右键消息就可以了.后来发现在duilib的标题栏中无法像在客户区那样自如响应UIEVENT_CONTEXTMENU消息的.所以还得用另外的方法. 在非客户区处理右击消息对应的是WM_NCRBUTTONUP,WM_NCRBUTTONUP是和WM_NCHITTEST相辅相…
转载请说明原出处,谢谢~~ 今天下午群友的网友让我帮忙看一下的duilib程序的问题,程序中包含了List控件,会定时清除所有子项目然后重新添加.但是程序运行一段时间后会自己崩溃!我编译了源码运行后在任务管理器里发现,程序的gdi句柄数一直增加而不减少,不到半分钟的时候gdi句柄数居然增加到10000个!!当时我就惊呆了,然后程序直接崩溃,如图: 很明显发生了gdi泄漏.随后我也看了自己的仿酷狗程序,居然也发现了gdi泄漏.当音乐项目增加到几百个之后gdi句柄暴涨,程序崩溃.随后进入debug模…
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/38253297 第一部分 我在前一段时间研究了怎么制作duilib的菜单,花了几天时间以MenuDemo为基础做出个duilib的菜单以备自用,近些天在群里经常会碰到群友问如何给MenuDemo增加消息响应,为了避免重复的回答我特意写这篇日志,希望可以帮到需要之人,同时也介绍了如何美化菜单的效果.动态修改自身的状态以及通过增加属性来优化菜单的xml文件编写过程,先截个图展…
上一篇讲了窗口及消息,了解了大体的程序框架.这一篇说的是控件的创建. duilib支持XML配置文件,即根据XML创建窗口及控件,将界面与逻辑分开,便于修改及维护.上一篇的示例中可以看到在消息WM_CREATE中有控件创建的相关代码. if( uMsg == WM_CREATE ) { m_pm.Init(m_hWnd); //根据XML创建控件 CDialogBuilder builder; CControlUI* pRoot = builder.Create(_T(, NULL, &m_pm…
首先是个国产的开源 的,directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 .Window CE.Mobile等平台. Duilib 是一款强大的界面开发工具,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率.提供所见即所得的开发工具UIDesigner.使用 DirectUI后将使得我们的设计人员彻底解 放,不会受到开发的束缚,可以充分地发挥其设计能力来设计软件界面,并参与到用户界面开发过程中. Duilib 目前…
<duilib之源码分析>1 stdAfx.h * lengthof(x) 计算数组长度宏 * MAX  两值最大 * MIN  两值最小 * CLAMP(x,a,b) x在a,b之间则取x否则取最小 2 UIBase * UI_WNDSTYLE_ 窗口风格属性 * UI_CLASSSTYLE_ 窗口类属性 * TRACE(LPCTSTR pstrFormat, ...) 功能 - 调试信息 参考 - 参考printf * TRACEMSG(UINT uMsg) 功能 - 将windows消息…
好人做到底,送佛送到西.虽然上一篇教程已经说得很详细了,但Alberl还是再举一个例子.上一篇教程的主窗口是MFC的,所以这篇教程把主窗口换成duilib的~O(∩_∩)O~ 1.我们利用<2013 duilib入门简明教程 -- 完整的自绘标题栏(8)>里的XML做为主窗口,并且把客户区的控件都去掉,换成一个自定义控件<Dialog />.将XML改名为XMP_MAIN.xml,并放到exe目录. 2.在CDuiFrameWnd::CreateControl()函数里,加入自定义…
问:如何把资源放入zip?答: 先SetResourcePath设置资源目录,再SetResourceZip设置压缩资源文件名 问:如何设置窗体的初始化大小?答:设置XML文件的Window标签的size属性. 问:如何设置鼠标可拖动窗体的范围大小?答:设置XML文件的Window标签的caption属性. 问:如何设置窗体可以通过拖动边缘改变大小?答:在窗体创建函数的第三个参数设置为UI_WNDSTYLE_FRAME才可响应拖动改变大小,和双击标题事件. 问:为何鼠标移动到边缘没有改变窗体大小…
XML 先学习xml https://www.w3cschool.cn/xml/xml-xml-tutorialhc4o1t5m.html 控件 上图是我们下载的NIM_Duilib_Framework工程的结构,红色区域的duilib就是下面要讲的内容. 所有控件的属性列表,下面的连接是作者提供的文档: https://github.com/netease-im/NIM_PC_UIKit/edit/master/doc/duilib%E5%B1%9E%E6%80%A7%E5%88%97%E8%…
虽然duilib自带在MFC中使用duilib的Demo,但只是MFC窗口和duilib窗口不重叠的情况.如果要在MFC窗口中嵌入duilib控件,或者在duilib控件中嵌入MFC的控件的话,就没有Demo可以看了,其实Alberl开始也不知道怎么办,看了下ActiveXUI控件,这个就是结合HWND的,但是由于接触duilib不久,所以一时无法看懂ActiveXUI到底是怎么将win32的HWND画上去的,只好在群里问啦,多谢铅笔群的Troy大神指导:      当时解决完之后上传了代码,不…