
Duilib
文章平均质量分 92
龙舞天涯
这个作者很懒,什么都没留下…
展开
-
duilib中禁止一个窗口双击最大化
用duilib开发了一个窗口,比如是登录窗口,那么这个窗口的窗口的双击最大化就毫无意义,甚至带来灾难,我们就要明确禁止这样的行为。我们应该明确,一个窗口创建的时候就赋予了它一些属性,那我们就首先看看如何创建窗口的,即Create函数。例如,你定义了一个窗口类叫LogInWnd,你会在需要的时候这用进行创建一个窗口:LogInWnd login_wnd;login_wnd.Cr转载 2016-01-19 20:09:52 · 1601 阅读 · 0 评论 -
让DuiLib支持Icon图片显示
DuiLib都支持Bitmap图片,但就不能icon图标,实际上用到Icon的地方还蛮多的,后来自己先办法看能不能写个专门的控件的来显示icon图片(以前看过一篇文章《修改stb_image.c以让Duilib直接支持Ico格式的图标显示》http://www.cnblogs.com/memset/p/dui_with_ico.html,但试过了好像显示有问题,联系作者他也说这中方法有bug,所以转载 2016-01-09 16:54:02 · 2519 阅读 · 0 评论 -
DuiLib改底层支持Icon图片显示
之前的那边文章通过自定义控件让icon图标直接绘制在控件上,这种方法虽然能显示icon图标,但如果想调整图标的大小和样式都要自己去改控件的代码不用使用DuiLib内部的一些属性(例如:padding, inset等),而且想要显示的icon的话必须使用控件,这样太不方便了。后来想过去改stb_image.c的底层解析代码,但我对icon的数据结构不是很了解,后来发现,DuiLib其实是通过stb_转载 2016-01-09 16:55:28 · 2150 阅读 · 0 评论 -
duilib对MFC的支持
关注duilib很久了,前段时间刚好有个MFC项目,对UI要求比较高,苦于duilib是基于win32开发的,而我对win32只有皮毛的了解,只好试着看源代码,发现里面有MFC的一个Demo,但是编译通不过,无奈只好试着看作者的思路,经过几天的摸索,终于成功运用到MFC项目中。先上效果图,再解释:上代码:1.编写duilib的CWindowWnd类class C转载 2016-01-09 17:00:08 · 4103 阅读 · 3 评论 -
DirectUI的初步分析
DirectUI的初步分析(一)最近由于项目的需要学习了一下DirectUI方面的东西,主要借鉴的是一个国外程序员写的代码(见引用一),看了后发现它更多的是探讨一种实现的可能性和思路,和实际应用还是有距离的,不过其实现还是很有意思的。在写此小结的时候又发现国内一个程序员将这个代码部分移植到WINCE下的代码(见引用二),因为平台的差异性要完全开发一个WINCE下转载 2016-01-09 18:47:01 · 1112 阅读 · 0 评论 -
响应windows原生消息和自定义消息
一、windows原生消息 同样,入门教程只是给出了响应windows原生消息的方法,并没给出例子,这里以自适应屏幕分辨率为例。迅雷播放器虽然可以在启动的时候自动调整窗口大小,但是当屏幕分辨率实时改变时并没有调整窗口。我们做个改进,即可以实时调整大小,很明显,应该响应WM_DISPLAYCHANGE消息,而duilib自己处理windows消息的函数是在HandleMessage里,因此转载 2016-01-09 18:52:15 · 439 阅读 · 0 评论 -
结合win32和MFC
虽然duilib自带在MFC中使用duilib的Demo,但只是MFC窗口和duilib窗口不重叠的情况。如果要在MFC窗口中嵌入duilib控件,或者在duilib控件中嵌入MFC的控件的话,就没有Demo可以看了,其实Alberl开始也不知道怎么办,看了下ActiveXUI控件,这个就是结合HWND的,但是由于接触duilib不久,所以一时无法看懂ActiveXUI到底是怎么将win32的HW转载 2016-01-09 18:55:37 · 746 阅读 · 0 评论 -
事件处理和消息响应
界面的显示方面就都讲完啦,下面来介绍下控件的响应。 前面的教程只讲了按钮和Tab的响应,即在Notify函数里处理。其实duilib还提供了另外一种响应的方法,即消息映射DUI_BEGIN_MESSAGE_MAP,可以将DUI_MSGTYPE_CLICK消息映射到指定的函数(比如OnClick),这和在Notify判断msg.sType是一样的效果,具体请参见duilib的RichL转载 2016-01-09 18:58:12 · 705 阅读 · 0 评论 -
duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
Duilib给控件贴图功能可以附带多个属性,各个属性的配合可以达到许多效果。以下是duilib支持的所有贴图属性:贴图描述: Duilib的表现力丰富很大程度上得益于贴图描述的简单强大。Duilib的贴图描述分为简单模式和复杂模式两种。 简单模式使用文件名做为贴图描述内容,在这种方式下,此图片将会以拉伸方式铺满控件。转载 2016-01-09 19:06:58 · 1383 阅读 · 0 评论 -
duilib 的DuiMessageBox
直接发源码!!.h[cpp] view plaincopy#ifndef DUI_MESSAGEBOX_HPP #define DUI_MESSAGEBOX_HPP #include "StdAfx.h" #include "WndShadow.h" enum Dui_MessageBox_Type转载 2016-01-09 16:45:07 · 1715 阅读 · 0 评论 -
分享个Duilib中基于wke的浏览器控件
概述 wke是基于谷歌chrome浏览器源代码的裁剪版本,大小仅仅只有10M左右,无需依赖其他的扩展库(跟CEF的一大堆大约40M的DLL来比简直爽呆了),就可以在本地使用谷歌内核快速加载网页。网上也有基于wke在Duilib 上扩展的控件代码,其实wke头文件挺清楚的了,接口一目了然,特别是JS与C++交互的函数更是容易看懂,也没什么难的,你也可以做到的。代码毕竟是裁剪库转载 2016-01-09 16:14:40 · 3761 阅读 · 2 评论 -
duilib : 在对话框中增加文件拖拽功能
纯win32的做法, 和duilib没半点关系.只是被增加文件拖拽功能的工程是 基于duilib的win32工程~[cpp] view plaincopy/// 创建能接受文件拖拽的对话框 void CMainDlg::DoTask() { CAcceptFilesDlg * pDlg = NULL;转载 2016-01-09 15:53:35 · 431 阅读 · 0 评论 -
分享一个使用NSIS制作安装包的UI插件
做软件开发以来,接触的安装包制作方式也有几种了,从最原始的MSI安装包方式,到InnoSetup,再到NSIS;但一直都是使用其脚本功能,并没有在界面上做一些美化操作。 很早之前就想做一个界面可以自由定制的安装包工具,一直没有时间,就放下了。最近有业务要求需要做到界面高度美观且要求便于维护,这就促使我花时间来整合制作了这一个安装包UI控件[nsNiuniuSkin.dll]转载 2016-01-23 23:04:39 · 7723 阅读 · 5 评论 -
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' xtiled='false' ytiled转载 2016-01-23 23:17:15 · 903 阅读 · 0 评论 -
Duilib 窗口流程
从GameDemo.cpp看起 1回顾通常的sdk窗口程序流程:注册窗口-创建窗口-显示窗口-启动消息循环 1.1注册窗口类Duilib中最平凡的真实窗口类是:CWindowWnd,关于窗口注册提供了两个函数,严格的说应该是几个:RegisterWindowClass()RegisterSuperclass()GetWindowCla转载 2016-01-23 23:25:54 · 1554 阅读 · 0 评论 -
duilib 界面库 实现timer定时器
看了大神介绍的duilib感觉已被同龄人狠狠地甩在背后。所以痛下决心,之后要多花时间写代码。大神教程传送门:http://www.cnblogs.com/Alberl/p/3341956.html现在的问题是想基于duilib实现一个timer定时器。工程基础大概是在http://www.cnblogs.com/Alberl/p/3343763.html因为转载 2016-01-24 13:57:57 · 2973 阅读 · 0 评论 -
duilib库的点九技术
duilib里所有的图片设置属性里都有corner字段,就是类似android系统里的.9.png技术。称为九宫格拉伸t_l、t_r、b_r、b_l这四个角是不被拉伸的,而m_l、t_m、m_r、b_m四条边就是corner要拉伸的边,corner的顺序就是m_l、t_m、m_r、b_m。转载 2016-01-09 15:20:59 · 374 阅读 · 0 评论 -
VS编译duilib项目时候的错误解决方法整理
@1:找不到Riched20.lib用everything等软件搜索下磁盘,找到所在的目录添加到vs的库目录即可,我得是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;其他的vs版本可能不一样,自行搜索@2: “IDispatchEx”: 重定义;不同的基类型 点击打开链接UIFlash.转载 2016-01-09 15:30:07 · 475 阅读 · 0 评论 -
Duilib在MFC中使用
今天手痒实验了下直接在CDLG里边用DUILIB(我不想直接用duilib了事,后期可能会做做大改动,所以没有直接在duilib::CWindowWnd里边想办法)发现唯一需要注意的就是需要在OnPaint中屏蔽CDialog的paint,,,duilib还是很牛逼的同样,把duilib整合成MFC的“插件”之后,那个CWindowWnd::Close会自动delete this的故障也没转载 2016-01-09 15:38:19 · 3175 阅读 · 0 评论 -
duilib : 滑动显示的窗口实现
前几天jhgwqp@csdn留言, 问有没有Demo工程. 做了一个给他.原来记录这个技术点时, 也想做个Demo留念. 随着时间的推移, 已经忘了这事.经jhgwqp@csdn提醒, 将这事做了.工程下载点: srcbk_2015_0722_1819_src-sliding-window-display.rar编译环境: vs2010 vc++ duilib效转载 2016-01-09 15:52:12 · 980 阅读 · 0 评论 -
正确编译 DuiLib 静态库的方法
使用 DuiLib 做过一个非常小的项目,当时因为没有研究清楚如何编译为静态库遂使用了 DuiLib.dll 的动态库来做的。最近自己又有使用 DuiLib 的需求,而且希望能编译成静态库使用,所以研究了一下(在群里也有很多朋友帮忙,最终解决了问题)。网上流传的一些注释原有代码一些宏定义并声明一个 UILIB_API 的方法并不正确,因为代码里面有专门针对静态库处理的位置,比如下面的代码:st转载 2017-01-10 13:45:17 · 7557 阅读 · 6 评论