- 博客(1184)
- 资源 (81)
- 收藏
- 关注
原创 创建 一个 最基本的 duilib窗口过程
一、使用向导 生成windows桌面程序1、 创建win32Project2、组织结构此时,都是VS 默认代码TestPro.h#pragma once#include "resource.h"TestPro.cpp// TestPro.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "TestPro.h"#de..
2022-05-24 12:20:07 725 1
原创 duilib 之 鼠标按下事件是如何处理的?
kEventMouseButtonDown,是duilib中自己定义的事件,意为 鼠标按下事件这里窗口事件被转换成了 duilib自定义事件处理。else。
2024-04-17 18:19:09 130
原创 旅游回来几天,笔记本突然出现TEST MODE ,重启黑屏
但是重启后,还是黑屏,后来发现,任务管理器中,总是有360进程, 打开控制板,将360卸载了,重启登录后,终于见到桌面了。西安旅游六天归来,发现笔记本成了TEST MODE ,我记得走之前,设置了睡眠,但是现在还在嗡嗡的响。任务管理器可以打开,运行explorer.exe,转圈,然后,就没然后了,还是黑屏。卸载这几天,自动给装的软件,edge dev 等,卸载的过程中,突然就显示桌面了。后来,从任务管理器,运行control, 打开了控制面板,重启后,登录界面可以进,输入密码后,黑屏,
2024-04-02 15:10:59 71
原创 duilib 基本控件 之 列表控件应用
因为列表单项中,有自定义的控件HBitmapControl ,所以这里创建列表项时,有个创建回调,专门处理自定义控件。
2024-03-26 17:56:24 41
原创 duilib 自定义扩展列表
// 列表项,用于在列表中展示数据的子项public:/// 重写父类方法,提供个性化功能,请参考父类声明/*** @brief 获取父容器* @return 返回父容器指针*//*** @brief 设置父容器* @param[in] pOwner 父容器指针* @return 无*//*** @brief 获取当前索引* @return 返回当前索引*//*** @brief 设置索引* @param[in] iIndex 索引值。
2024-03-26 17:54:22 113
原创 CEF C++端判断前端是否注册了某个JS函数
前端注册的方法,保存在渲染进程中render_registered_function_浏览器进程要获得渲染进程信息,就需要通过进程通信的方法。收到后,返回上层处理。
2024-03-13 15:56:06 156 1
原创 客户端 生成二维码 APP 扫码登录逻辑
返回扫码用户的 UID 和他的 userIcon,我们这里就是要下载这个头像,并显示出来。当确定需要显示二维码时,需要使用fake_uid,向服务器请求,获得passport。在全局隐藏窗口中,获得目标登录窗口类,在此类中负责下载头像、显示头像。PUSH回调信息,Post到g_ui全局隐藏窗口的窗口处理函数中。收到下载头像响应后,隐藏二维码,头像控件,设置头像路径 并显示。APP扫码后,二维码要变成用户的头像,以说明,用户已经扫码了。客户端收到 用户扫码的 PUSH。APP 扫码,点击确定后。
2024-03-13 15:55:04 904
原创 CEF c++调用JS,并获得JS返回值的 流程
所以,渲染进程进而判断,如果返回对象的话,则把对象转换成json串,再返回给调用这个JS的那个C++函数的回调中。这里的匿名函数,就是c++,调用注册的JS名时,所要执行的那段JS代码函数。这样,C++调用这个注册的JS,又得到了JS的返回json信息。参数:方法名、JSON参数串,接收JS回调的匿名函数。在前端中,使用扩展代码提供的方式,注册个JS。CEF中,c++层,可以直接调用这个JS。如果,JS中,需要返回C++ 执行结果,比如,C++浏览器进程 ,调用方式。这里,JS返回的是一个对象,
2024-03-08 17:31:05 139
原创 CEF JS与c++能够交互的原理 以及 JS 调用C++的流程分析
当js中,触发了扩展代码中的函数中,就会调到这里处理// 当Web中调用了"NimCefWebFunction"函数后,会触发到这里,然后把参数保存,转发到Broswer进程// Broswer进程的BrowserHandler类在OnProcessMessageReceived接口中处理kJsCallbackMessage消息,就可以收到这个消息// 允许没有参数列表的调用,第二个参数为回调// 如果传递了参数列表,那么回调是第三个参数else。
2024-03-08 15:21:55 297
原创 duilib 基础 之 事件响应方法集锦
注意,将transBox mousechild设置为false,才会响应, 要不然,可能会被子控件响应去。可以添加 AttachBubbledEvent事件通知,子控件将鼠标消息,和冒泡一样,通知给父控件。如果,子控件也要响应鼠标,还要时间上述效果。
2024-02-05 11:16:14 162
原创 c++ 子进程交互 逻辑
隐藏可以子进程自己完成,自己设置为隐藏即可。获得父进程句柄,写入子进程句柄。比如,点击某个按钮,隐藏子进程,显示父进程。父进程处理消息,显示自己。子进程点击后,隐藏自己。
2024-02-05 10:21:07 1311
原创 duilib 实战 之 悬浮时间小窗口 3 新增一个Option控件类
想新增个OptionHBox 控件类,主要是想实现 option组,动态显示哪个的子项的问题。发现,原duilib没有这个功能,就参照duilib原有功能,扩展了一下。目录一、duilib新增一个控件类1、duilib\Core\Define.h 新增一个宏定义2、Option模板类3、在WindowBuilder中创建4、扩展一个 选中某个子项的功能5、实例1)、样式2)、代码中设置组名,选则子项选中某个子项,同时将其它子项选中状态设置为FALSE注意: 只有子项 添加gro
2024-01-23 10:10:41 196
原创 duilib 理论分析 之 窗口绘制过程
是Windows消息的一种,用于在窗口被创建之前发送给窗口过程(Window Procedure)。通过上述分析,可知道HandleMessage 先调用的是 new的 派生实际类的那个 重载函数。在这种情况下,将会根据指针所指向的对象的实际类型调用相应的函数。并通过SetWindowLongPtr,把窗口指针存放到窗口的额外空间中,以便后续使用。因为这里调用的是虚函数,所以会根据指针所指向的对象的实际类型调用响应的函数。结构体中的成员,其中包含了创建窗口时传递的参数。获得窗口指针,通常的做法是在。
2024-01-17 14:39:32 134
原创 互动直播 连麦布局之 双屏普通下 本地布局 合成布局 连麦顺序不一致解决方案
而这两个容器的添加删除成员时机都是相同的,所以理论上本地布局 和 合成布局 连麦者位置也应该相同了,测试也是这样的效果。因为,需要这个信息,设置每个连麦者位置,为了方便,所以将这个容器放在了CBypassCtrl 类中了。因为,在某种模式下,不显示用户头像,所以还需要有:用户是头像连麦还是视频连麦的标识。保存的是进入频道的全部连麦者,包含自己和其它所有在频道中的人员。以后需要做的是多麦选择,选择哪个就显示哪个,这个待以后优化。然后,在有其它连麦者进入时,将其它连麦者加入。目前,先加入离开时,重置下。
2024-01-12 09:59:40 54
原创 互动直播 之 隐藏音频连麦者头像
另外,双视频下,学生切换音频\视频模式时,发送 SubExe_SendPush_talk_mode 消息时,也调整。下次该学生以视频方式上麦,因为onuserJoined来的最快,这时候还没有得到学生此次已经改为视频上麦的信息,对主播来讲,onUserJoined、onUserLeft 时调整下。所以此时动态隐藏调整时,就有问题了,本来应该显示,但是却隐藏了。一开始 音频模式上麦,这时候学生是音频模式,然后自己下麦。绘制连麦者数据时,不绘制头像连麦的人。获得volumeBox。如果是不显示头像模式,
2024-01-09 10:56:44 1068
原创 duilib 实战 之 悬浮时间小窗口 1 逐渐显示效果
不过最好使用这样的原则: 初始显示为true的,根据需要可设置fadewidth ,初始显示为false的,最好不要设置渐变动画。因为我这是悬浮窗口,本来就很小,设置caption后,点击按钮也失去作用了,所以选择自己控制拖动。样式中,开启fadewidth,可设置宽度隐藏显示时的渐变效果。初始是隐藏的话,开启动画效果后,会有一闪现象,使用时候需要注意。下面的方法,可以缓解,但是第一次直接显示的话,也有点突兀的感觉。层次窗口,可以实现透明效果,默认纯黑色是透明色。但是如果初始是隐藏的话,会有一闪的情况。
2024-01-09 10:52:01 467
原创 VUE 小说网站 1 搭建环境
后来,我试图换了 8643等 没用占用的端口,结果还是不行,也不是这个原因。后来看看目录结构,这个index.html 在public下。.vscode ->launch.json中。以为是目录中含有空格导致找不到的,去掉空格后。8080 被 微信 QQ 占用 了 PID。控制台 运行 npm run start。运行 npm run start。再运行,能找到文件了,但貌似还不对。没有 start 和 dev了。运行 npm run serve。打开package.json。
2023-12-27 10:20:23 2881
原创 互动直播 之 播放器管理类
单例模式是一种设计模式,确保类只有一个实例,并提供一个全局访问点。这可以用于确保一个类只有一个实例,并提供一种访问该实例的方式。public:// 获取单例实例的静态方法// 使用静态局部变量确保只创建一次// 示例成员函数// 防止拷贝构造函数和赋值操作符的实现private:// 私有构造函数,确保外部无法直接实例化// 可以进行初始化操作// 私有析构函数,确保外部无法直接删除实例// 可以进行清理操作// 获取单例实例// 使用单例实例return 0;
2023-12-27 10:14:17 830
原创 GDI+ 绘制圆形头像
需求: 用户实际头像是长方形的,现在要绘制一个圆形的头像显示解决方法:在原图像上,添加一个圆形蒙版,圆形区域是透明的,其它是背景色。
2023-12-18 10:02:22 180
原创 互动直播 之 播放器 类
private:其中,_HNLPSERVICE 是一个结构体宏定义} *//展开为:/*** @brief 视频数据的回调* @param frame: 回调的视频帧结构体指针,若为NULL表示数据格式转换失败* @return 无*/
2023-12-12 10:20:02 48
原创 互动直播,扬声器 逻辑梳理
Windows Core Audio API是Microsoft提供的一组API,用于在Windows操作系统上进行音频编程。这些API旨在允许开发人员处理音频设备和音频处理,以及在Windows应用程序中执行与音频相关的任务。这是一个低级API,提供直接访问Windows音频引擎的接口。它允许应用程序以独占或共享模式访问和处理音频流。该API是Core Audio API的一部分,用于枚举和管理音频设备。它允许应用程序发现和与音频设备(如扬声器、麦克风和音频捕捉设备)交互。
2023-12-01 17:29:36 175
原创 两电脑共享鼠标键盘方案
后来, 设置了 wrap mouse pointer around display就好了,虽然还是显示一个显示器,这样我的鼠标,可能移到他们电脑上, 他们的鼠标也可能移到我的电脑上, 造成混乱。CTRL+V 不知道是粘贴本地的,还是粘贴别的电脑的,容易造成混乱。明明是两个显示器,但是 只显示一个,鼠标也不能移到另一个显示器上。局域网还有其它同事使用,这时候,也把他们的显示器列出来了,1、鼠标不能移动到另一个显示器。但鼠标可以在两显示器间移到了。这时候,设置密码 可以解决。2、出现了很多显示器。
2023-12-01 10:06:23 869
原创 VSCODE 在新窗口中打开
后来发现 使用快捷健 ctl+k,o 可以将标签页在新窗口中打开,虽然不如vsstudio方便,不过也可实现在新窗口打开的功能了。但是VSCODE,无法拖动标签到一个新窗口中,一直以为没这个功能。使用VS习惯了,经常在新窗口中打开查看。
2023-11-29 11:37:42 426
原创 互动直播项目 之 静音逻辑 梳理
学生自己静音不静音 不关心, 只关心,老师静音主持人后,主持人又自己打开的情况,这种情况下,要更新主持人麦克风UI。注释掉下面的通知,这样也就不用自己的服务器发PUSH了,也不用处理主持人的静音PUSH了。学生可以自己静音,但是老师将其静音情况下,无法自己取消静音的。先判断是否被老师静音,没有被老师静音的情况下,则自己操作。然后,把老师禁言自己的信息改掉。比如,之前被老师静音了,重新进入后,还保持静音状态。比如,学生举手,老师同意连麦后,学生上麦。
2023-11-24 11:33:54 71
原创 duilib 实现登录界面 之 功能实现
上节,介绍了登录界面的布局样式,这节,介绍如何编码实现登录界面本节只做登录窗口的演示,正式登录窗口,是需要向服务器发送登录请求的,根据服务器返回的信息,判断是否可以登录,这部分内容需要自己根据需要添加。
2023-11-24 11:28:57 626
原创 duilib 实现登录界面 之 样式设计
可以设置多个同层次的子BOX,但是显示时,只显示其中某一个子BOX有selectedid 属性,标识,显示哪一个子项可以看到,选中某项时,下面的箭头会出现,未选中时,会消失所以TabBox可以设置两个子项,一是选中显示子项,一是未选中,什么也不显示子项。
2023-11-20 15:22:49 388 8
原创 python学习 二 04 爬一个图片网站-解析文件,获得所有图片链接
是一组,保存着背景图片,那我们解析的时候,将这一组图片,单独的放在一个文件夹background中。是一组,保存着背景图片,那我们解析的时候,将这一组图片,单独的放在一个文件夹background中。所有相关的网址,都下载到本地了,下面我们依次解析,获得图片链接,然后将图片链接保存起来。获得目录下的所有txt文件路径,保存在txtFileList中。我们将右侧的数字去掉,剩下的字符串作为这一组的类别。是另一组,解析的时候,单独的放在一个文件夹中。获得文件中,所有图片的链接列表。
2023-11-13 10:55:46 64
原创 python学习 二 03 爬一个图片网站-获得所有分页网址
主文件中,就一句话,因为细节都封装在另一个文件中了,我们主要考虑逻辑,细节可以通过查资料去实现,去调试。我们之前,已经分析了首页,获得了图片类别对应的链接,并将这些链接保存在了本地文件中。下载下来后,后续我们会解析网页,获得图片地址,下载图片,本节主要完成前三步即可。下面,为了免去每次下载网页的麻烦,我们一次性下载这些网页,并保存在本地中。上文提到,解析了首页,将所有的主分类链接保存到了本地文件中。第一步,我们会下载主链接网页,保存在本地文件中。第二步,分析主链接,获得相应的所有分页网址。
2023-11-13 10:29:20 142
EnumDevice.zip
2021-07-08
gimp-2.10.24-setup-3.exe
2021-06-21
duiliib 基本控件使用示例.zip
2021-04-16
Package Control.zip
2021-02-01
obs可能还需依赖的dll.zip
2021-01-28
OBS开发需要安装的软件.zip
2021-01-28
duilib 之 文件选择示例.zip
2021-01-26
JsonTest.zip
2021-01-21
modifyName.zip
2021-01-18
channel_v3.rar
2020-04-14
obs-vs2013.zip
2019-11-26
c++ duilib 使用一个布局文件,实现不同消息框显示
2023-09-28
根据学生成绩分不同段位分别显示 类似英雄榜
2023-01-13
QT窗口,自定义标题栏 并实现拉伸 移动功能示例
2023-01-11
obs-studio_27.2 开源软件OBS 源码及子模块源码 打包
2022-07-11
第一个duilib工程示例 博客地址:https://gudianxiaoshuo.blog.csdn.net/article
2022-05-30
VUE--组件示例 博客 https://gudianxiaoshuo.blog.csdn.net/article/detail
2022-05-28
elementUI 本地化 所需资源
2022-01-27
罗技摄像头公共属性集 文档 及头文件.zip
2021-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人