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