duilib
修的什么真
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
duilib:从底层分析duilib的大致实现逻辑
按我理解,概括起来,总体包括几个部分,注册窗口,创建窗口,创建控件树,绘制,消息机制。 创建窗口&&注册窗口: 1. RegisterWindow指定一个静态回调函数WndProc 2. CreateWindowEx最后一个参数把自己当作参数传递过去 3. WndProc收到WM_NCCREATE消息后,转换一下tagCREATESTRUCT,获取创建的窗口句柄hWnd还有上一步提供的参数lParam,通过SetWindowLongPtr把hWnd,lParam保存下来原创 2022-01-06 16:04:50 · 1062 阅读 · 1 评论 -
duilib:设计一个“长度不够,按钮来凑“的duilib布局控件
本控件主要为了支持布局内元素很多,但是又不想显示滚动条,意图通过按钮来控制布局滚动的情形。 效果图如下: 当布局高度足以容纳所有子控件时: 当布局高度不足以容纳子控件时: 并且上下按钮支持点击翻页功能。 主要实现思路: 1. 控件构造的时候,把上下两个按钮以及中间的布局给添加到控件里。 2. 控件处理绘制事件的时候,通过判断中间的布局滚动条的显示状态来隐藏/显示上下按钮。 3. 托管上下按钮的点击通知。 4. 由于需要滚动条显示属性的支持,因此只能把滚动条的宽度设置为...原创 2021-07-26 10:15:01 · 370 阅读 · 0 评论 -
duilib:设计一个高可用,支持uri下载的duilib控件
先喵两句,本文只是提供一个具体思路,直接copy肯定编译不过,需要自己实现以下接口: 1.uri下载接口 2.主线程调用接口(如果可能的话) 3.线程池 duilib默认没有支持uri图片的控件,很多业务逻辑都需要自己实现,因此就有了以下的大胆想法,由于图片下载/显示的逻辑都很雷同,没必要一个个继承,然后重复写一套逻辑,显得代码很冗余,于是就有了以下想法,直接用模板类来实现这些接口。 代码上面也会有相应的注释,将就着看吧: .h文件: using namespace std::tr2;...原创 2021-07-24 00:28:18 · 210 阅读 · 0 评论
分享