
duilib
文章平均质量分 77
Martin89
这个作者很懒,什么都没留下…
展开
-
通过 pFont 中lfHeight 转换成 CHARFORMAT2 中的字体高度 yHeight
考虑DPI映射比例,LOGFONT::lfHeight单位是像素;CHARFORMAT2::yHeight单位是1/1440英寸或1/567厘米(现实长度。原文链接:https://blog.youkuaiyun.com/chenzhisi/article/details/39990513。必须根据DC的映射模式换算到实际DC中的像素值。转载 2024-06-14 17:55:16 · 94 阅读 · 0 评论 -
duilib自绘制圆形进度条
watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW8zNDA0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)%"/>原文链接:https://blog.youkuaiyun.com/c_base_jin/article/details/80472937。转载 2024-05-21 09:43:18 · 164 阅读 · 0 评论 -
duilib进阶教程 -- 改进List控件(3)_支持多选+右键菜单(ctrl,shift, 鼠标滑动框选)
看到很多PC客户端的列表都支持多选,比如PP助手,华为网盘,duilib本身UIList却没有此功能的支持,于是想修改一把,完善这方面的劣势,而且相信用到的这个功能的也不少,尤其在开发文件管理相关的功能模块,多选的支持应该是必须的。总结分析:ctrl按下的情况,点击,不会使前一个(一部分)选中项失去选中状态,而只是让当前点击的项改变选中状态,并将焦点移到当前项。抬起时,恢复标识位,右键抬起的话,总结分析:shift按下的情况,点击,是选中一个范围,起始项为焦点所在的项,shift点击的项为结束项。转载 2023-12-21 21:29:43 · 740 阅读 · 0 评论 -
Duilib的控件拖拽排序,支持跨容器拖拽(网易云信版本)
完整代码见:https://github.com/netease-im/NIM_Duilib_Framework/pull/151 核心代码(思路): appitem.h#pragma once#define APP_HEIGHT 90#define APP_WIDTH 90#define EACH_LINE 6#include <string>//a...转载 2022-05-27 17:50:07 · 597 阅读 · 0 评论 -
GDI+绘制圆角矩形
1、最近,用到GDI+绘图,但是发现没有绘制圆角矩形的函数,故自己写了一个。下面贴出原理和代码,以作备份。2、要绘制圆角矩形,基础是普通的直角矩形,需要做的就是将直角画成弧形。3、绘制圆角矩形可以由两个部分组成:第一部分是绘制四个圆角(左上、右上、右下、左下);第二部分是用直线连接四个圆角。4、绘制第一部分用到Graphics.DrawArc 方法:本例用到的是下面这个重载函数:Graphics.DrawArc 方法 (Pen, Single, Single, Single, Singl转载 2022-01-10 19:33:50 · 1760 阅读 · 0 评论 -
关于Duilib的扩展——“拖放”实现(一)
目前我们的Duilib是不支持拖拽的,想必大家已经知道什么是“拖拽”了,比如Windows文件浏览器,拖动文件到另一个窗口,实现复制或移动;再比如,QQ的好友列表,拖动,互换位置。 所谓“拖拽“其实是两个动作,一个主动,一个被动。主动的叫”拖“,被动的叫”放“。那么支持”拖“动作的控件就叫做DropSource(拖放源),支持”放“动作的控件就叫做DropTarget(拖放目标)。DropSource和DropTarget可以在不同的进程中进行交互,它们的通信方式和”剪切板“是一样的,...转载 2021-12-29 20:35:48 · 837 阅读 · 0 评论 -
再谈向RichEdit中插入GIF动画的实现
我的前一篇文章“使用定时器显示GIF动画的ATL控件实现”中讲述了如何创建ATL项目,并实现显示GIF动画的控件,虽然能够显示,但有一些问题:1.tphlj同学说一行插入多个GIF的时候,CPU会很高。 这个问题我倒没有注意,因为我发现了更严重的问题,所以用那种方法实现的控件没有使用了,已经被我删掉,不能测试。2. 删除插入的GIF后发现光标还在不停的闪烁 显然这是由于删除对象后对象没有被释放,定时器还处于启动状态,导致不断地刷新;原因找了很久,发现是由于RichEdit支持撤...转载 2021-04-17 17:49:42 · 303 阅读 · 0 评论 -
duilib入门问题集
引入duilib时请确保引入头文件开始时先引入COMUTIL.H头文件#include "COMUTIL.H"#include "UIlib.h"duilib基本程序结构在stdafx.h文件中加入[cpp] view plaincopy"font-size:18px;">#include "COMUT转载 2015-10-04 12:31:25 · 3168 阅读 · 0 评论 -
Rich Edit 控件 SDK 参考手册
摘要:本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值。因为文章的初衷是引领VB程序员通过Win32 API调用来扩展VB下的Rich Edit控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考Visual Studi转载 2016-01-23 22:35:53 · 1714 阅读 · 0 评论 -
DUILIB异形窗口实现
搞Windows程序的人尽皆知分层窗口能够实现很多不错的效果,之前看过一些异形窗口的实现,所以就手痒也想自己搞一个玩一玩。自己动手实现过程才发现还是有不少问题的。基本思路是:1.将窗口扩展属性设置为分层属性WS_EX_LAYERED。2.选一张透明的png图片,并将其加载进来。3.创建与窗口兼容的内存设备上下文,以及兼容位图,将兼容位图选入兼容设备上下文。4.将png图片绘转载 2016-01-23 22:44:54 · 683 阅读 · 0 评论 -
duilib动画按钮实现
在工作中遇到一个要实现动画按钮的问题,在网上搜索了一圈,也没有找到比较合适的解决方法。于是就自己花点时间写了一个。现在把实现方法贡献给大家,希望您有用。实现方式为定义一个类“CButtonUIEx”,该类继承于“CButtonUI”。动画效果是用定时器来实现的,所以定义了两个定时器:一个用来播放鼠标进入动画,一个用于鼠标离开播放,其实就是逆序播放一遍。#ifndef __UIBUT转载 2016-08-17 09:37:40 · 883 阅读 · 0 评论 -
Duilib实现圆形头像控件
.h文件 1 #ifndef __UIHEADICON_H__ 2 #define __UIHEADICON_H__ 3 4 5 /* 6 名称:圆形头像控件(派生CButtonUI类) 7 */ 8 9 10 class CHeadUI: public CButtonUI11 {12 public:13 14 CHeadUI();1转载 2016-11-21 10:57:44 · 1679 阅读 · 1 评论