DirectUI
Skilla
这个作者很懒,什么都没留下…
展开
-
让Duilib多线程编程更容易
记得很久以前就听有人说过Duilib原创 2014-11-18 13:10:37 · 9345 阅读 · 7 评论 -
Duilib源码的关键部分
Skilla使用duilib已经有一年了,经过一年的摸索,也逐渐地解开了里面的大大小小的秘密。从熟悉Demo到布局特性的了解也是经历了数月的时间,核心机制也是最后才弄明白的,源码的探索也是由表及里的。但是这个速度是非常缓慢的,所以今天Skilla要写这篇文章,让大家可以有主到次地来认识Duilib。 其实,要想以最快的速度把源码弄通,是需要有先后顺序的,说的再简单点就是要抓住核心原创 2014-11-26 10:28:57 · 3562 阅读 · 4 评论 -
DirectUI通用动画框架
在编写VC界面时,编写动画比较困难,代码重用性不高。编写一个临时动画需要创建定时器或者线程来驱动改变渲染状态,来达到画面实时改变的目的。但是定时器和线程都是比较难以维护的,处理不好很容易造成资源浪费甚至程序崩溃。 Skilla在上一周整理好了skillcore库,这一次又给它增添了通用动画框架。这个动画框架本身没有渲染功能,主要是提供动画的驱动事件,使用时需要自己去处理动画事件原创 2014-11-22 22:19:06 · 4169 阅读 · 6 评论 -
轻轻的我走了,正如我轻轻的来——Duilib无焦点窗口的实现
在Windows编程中,我们已经习惯了一个窗口从创建到显示并获得焦点。我们总感觉一个窗口创建出来获得焦点是理所理所当然的,一个窗口只要显示就必须获得焦点。一个新窗口显示时,会收到到WM_SETFOCUS消息,然后旧的窗口会收到WM_KILLFOCUS消息。可能我们并不关心焦点的切换,因为从视觉角度来看,没有任何影响,但是键盘类的消息却在焦点变化时不断切换响应窗口。我们都知道,鼠标消息到来时,决定哪原创 2014-12-18 20:21:57 · 5750 阅读 · 3 评论 -
新版MenuDemo——使用Duilib模拟Windows原生菜单
相信玩Duilib的朋友已经期待这篇文章很久了,因为我在一周前发表的文章——“无焦点窗口的实现”里面提到了无焦点窗口在菜单里面的应用,并承诺大家,写一个关于Menu实现的Demo分享给大家。先上几张截图,看一下效果 怎么样,Skilla这次的作品还能让你心动吧,没错,上面的菜单效果可不是酷狗里面的截图,就是我们熟悉的Duilib实现的。 说起菜单,原创 2014-12-22 13:07:45 · 7864 阅读 · 16 评论 -
关于Duilib的扩展——“拖放”实现(一)
目前我们的Duilib是不支持拖拽的,想必大家已经知道什么是“拖拽”了,比如Windows文件浏览器,拖动文件到另一个窗口,实现复制或移动;再比如,QQ的好友列表,拖动,互换位置。 所谓“拖拽“其实是两个动作,一个主动,一个被动。主动的叫”拖“,被动的叫”放“。那么支持”拖“动作的控件就叫做DropSource(拖放源),支持”放“动作的控件就叫做DropTarget(拖放目原创 2015-01-04 00:17:27 · 5506 阅读 · 0 评论 -
关于Duilib的扩展——“拖放”实现(二)
上一次我们实现了让窗口支持DropTarget,我们实现了一个叫做IDropTarget的接口。但是还没有给控件实现,当然如果你在这个窗口里面只有一个控件实现DropTarget的话,你完全可以使用Rect来进行区域限制,但是这样还是比较麻烦,还要手动添加一堆代码。所以我们直接让控件实现这个功能,只需要一个bool属性,就可以控制一个控件是否能接受拖拽。为了减少源代码的修改,我们弄下面原创 2015-02-05 18:10:10 · 4075 阅读 · 3 评论 -
Duilib界面库Capture系列的相关bug解决
Duilib是个轻量级的Windows界面库,可以让使用者在最快地时间构建出自己的项目,而且依赖最少。这里之所以突出它的“轻量级”,是为了强调作者在构建该界面库时的良苦用心。但是,物极必反,有些东西做得足够“傻瓜”后,就会变的不灵活。Duilib的控件的Caputre是个硬伤啊(希望作者不要骂我啊,我真是不好意思拆这个台,但是我今天真的遇到一个不可忽视的bug)。这个bug咱们暂且不说,先介绍一下原创 2015-05-27 11:36:38 · 3181 阅读 · 5 评论