![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
duilib 小知识篇
文章平均质量分 75
dulib 小知识,看起来有点杂,有时候还挺实用
清水迎朝阳
多年windows下c++客户端开发,或多或少踩了很多坑,积累了一些经验
展开
-
网易 nbase库线程操作
1 项目使用了网易半开源的工程,涉及到的线程相关定义如下:class ThreadMap{public: SINGLETON_DEFINE(ThreadMap); static bool AquireAccess(); bool RegisterThread(int self_identifier); bool UnregisterThread(); int Que...原创 2019-02-14 15:29:51 · 3096 阅读 · 1 评论 -
duilib 之 动态添加BOX布局
动态添加BOX布局Box* GlobalManager::CreateBoxWithCache(const std::wstring& strXmlPath, CreateControlCallback callback){ Box* box = nullptr; auto it = m_builderMap.find(strXmlPath); if (it ==...原创 2020-02-17 14:33:39 · 1048 阅读 · 0 评论 -
duilib 绘图机制分析
注:本文使用的是云信duilib1绘图功能基本接口 抽象类 不负责具体实现功能,而是定义绘图时,应该具有的功能,由纯虚函数定义在duilib中,将与绘制相关的功能,定义成了抽象类纯虚函数接口,定义了绘图使用的渲染上下文环境在IRender.h中,定义了各种接口抽象类其中,最重要的就是IRenderContext ,渲染上下文接口类,此抽象类中定义了绘图所应该有的常用功能class UILIB_API IRenderContext : public nbase::Sup...原创 2020-08-05 17:04:15 · 1361 阅读 · 0 评论 -
duilib 小知识 之 鼠标进入进出处理
很多应用都有这样的场景,鼠标进入,显示按钮,鼠标离开隐藏按钮其实响应的是mouseEnter mouseLeave消息对于这个功能,duilib很容易就可以实现首先看看有哪些消息类型//定义所有消息类型enum EventType{ kEventInternalDoubleClick, kEventInternalMenu, kEventInternalSetFocus, kEventInternalKillFocus , kEventNone, k...原创 2020-05-12 13:52:35 · 933 阅读 · 4 评论 -
云信duilib 小知识总结 (对齐、半透明、右键菜单)
1 对齐属性 <Attribute name="halign" default="left" type="STRING" comment="控件的横向位置,如(center),支持left、center、right三种位置"/> <Attribute name="valign" default="top" type="STRING原创 2018-11-12 17:40:21 · 3120 阅读 · 1 评论 -
云信duilib 学习一 VListBox 虚拟列表
简单示例:<?xml version="1.0" encoding="UTF-8"?><Window size="400,600" caption="0,0,0,35" sizebox="4,4,4,4"> <VBox bkcolor="bk_wnd_darkcolor"> <!-- <HBox width="stretch" h...原创 2019-08-30 16:05:00 · 2173 阅读 · 2 评论 -
duilib 全屏按钮实现
1 duilib 添加全屏按钮最大化、还原按钮 <Box name="sys_menu_box" width="16" height="16" margin="0,0,20,0" valign="center"> <Button class="btn_white_max&qu原创 2018-09-04 11:24:04 · 1926 阅读 · 0 评论 -
duilib 修改窗口大小 偶然失败情况
现象:动态设置窗口最小大小,动态改变窗口大小位置,发现偶然会有不成功现象。经测试,下面操作,会导致修改不成功将窗口最大化 , 隐藏 , 然后修改窗口大小 , 最后显示窗口, 会发现窗口大小没变。解决:估计,此时,窗口处于最大化状态,因此是不支持修改窗口大小的, 知道原因就好解决了。再隐藏窗口 或重新设置大小时,先还原下窗口具体如下:重新设置大小时:...原创 2019-04-08 15:08:04 · 1187 阅读 · 0 评论 -
duilib 窗口创建流程梳理
1 duilib窗口类<Window size="400,150" caption="0,0,0,60" roundcorner="16,16" shadowattached="false"> duilib自己封装了Window类class UILIB_API Window : public virtual nbase::SupportWeakCallback{public: Window(); ~Window(); /** * @brief 获取...原创 2020-07-28 17:48:24 · 1478 阅读 · 0 评论 -
duilib 之文件打开 保存对话框
1 打开文件 std::wstring file_type = L"文件格式(*.jpg)|(*.jpeg)|(*.bmp)|(*.png)"; LPCTSTR filter = L"*.jpg;*.jpeg;*.bmp;*.png;"; std::map<LPCTSTR, LPCTSTR> filters; filters[file_type.c...原创 2020-02-17 11:24:30 · 1179 阅读 · 0 评论 -
duilib 小知识 之 类样式的编写
如果一样的控件经常被用到,最后写成一个类样式,这样再使用的时候就方便多了。示例比如:滑动条类:<Class name="VolSlider" value="height="14" width="80" value="50" max="100" min="0" thumbsize="...原创 2020-05-13 15:46:42 · 328 阅读 · 0 评论 -
duilib 小控件 之 滑动条
1 滚动条Slider属性 <Slider parent="Progress" notifies="暂时不写" > <Attribute name="thumbnormalimage" default="" type="STRING" comment="拖动滑块普通状态图片"/> <Attribute name="thumbhotimag...原创 2020-05-08 11:32:07 · 1599 阅读 · 0 评论 -
duilib 小知识 OptionBox 及TabBox使用
属性介绍示例:左侧使用的就是optionBox同一组中,选中一个optionBox后,则组内其它OptionBox失去焦点用法<VBox bkcolor="white" width="100" margin="0,75,0,0"> <OptionBox group="headPage_opt" height="99" cursortype="hand" name="netOptionBox" selected="true"> ..原创 2020-07-20 16:53:16 · 2010 阅读 · 2 评论 -
duilib 小知识 之窗口
窗口管理类:duilib有一个窗口管理类:class WindowsManager{public: SINGLETON_DEFINE(WindowsManager); WindowsManager(); virtual ~WindowsManager(); //根据窗口类名和id注册窗口 bool RegisterWindow(const std::wstring wnd_class_name, const std::wstring wnd_id, WindowEx *wnd);原创 2020-05-15 16:29:50 · 721 阅读 · 0 评论 -
duilib属性列表.xml
<?xml version="1.0" encoding="UTF-8"?><Resources> <Global comment="定义了全局公用资源,包含了字体、class、文字颜色。定义Global标签的xml文件需要放到资源目录的根位置,目前命名为硬编码“global.xml”,详见GlobalManager::Startup函数代码"> <Attribute name="disabledfontcolor" default="0xFFA7A6A.转载 2021-06-07 10:39:30 · 699 阅读 · 0 评论