当前位置: 首页 > news >正文

【wxWidgets实现透明wxPanel_核心实现_原创思想】

描述

wxWidgets 根本就没有实现过透明wxPanel容器,你设置wxTRANSPARENT_WINDOW,结果sorry 黑色,哈哈哈哈, 就是和你作对.想想当下那么漂亮的桌面, 背景, 透明, 特效.哎 悲哀啊,实现不了,就那死板的界面特性.
网上找了好久,也是乱七八糟,改底层代码还是算了吧,升级特要命.都是只言片语,断章取义的东西,摸鱼了好久好久,终于在官网找到个伯克利大学的一个项目实现了想要的效果,可是源码居然run不动,一堆乱七八糟的依赖,哎,真tmd操蛋啊,看看扔了好久,可那个效果真的能改善界面观赏度啊,真不错,心不甘情不愿的范代码,垃圾堆里面翻找,真要吐了,反反复复搞了好几次,理解,测试,干,心力疲惫的终于搞出来了.

如何实现

  • wxFrame 为项目启动的主界面,一般我们默认会设置颜色,或背景图片,那就来个图片背景吧,切记此图将会全局使用到.
  • 构建一个自定义wxPanel它将实行我们的核心处理操作
  • 构建的wxPanel必须获取到wxFrame设置的背景对象,裁切到wxPanel容器大小,并且修饰一下
  • wxFrame 对象重绘背景时更新wxPanel背景,不然穿帮了.下面看看核心实现吧.

代码[非全部]

 void BGPabel::draw(wxDC& dc) {if (bgimage.IsOk()) {wxRect rect = GetRect();wxImage	img = bgimage.GetSubImage(wxRect(this->GetPosition().x, this->GetPosition().y, rect.GetWidth(), rect.GetHeight()));//img=	ImagePaletteHandler(img);dc.SetPen(*wxBLACK_PEN);dc.SetBackgroundMode(wxSOLID);dc.SetBrush(*wxTRANSPARENT_BRUSH);int s = img.GetWidth() * img.GetHeight();// 创建透明层// Setup the alpha channel.unsigned char* alphaData = new unsigned char[s];memset(alphaData, wxIMAGE_ALPHA_TRANSPARENT, s);for (int y = 0; y < s; y++) {alphaData[y] += 50;}img.SetAlpha(alphaData);dc.DrawBitmap(wxBitmap(img), 0, 0, true);dc.DrawRectangle(0, 0, img.GetWidth(), img.GetHeight());}
}

不错核心代码就这几句, 裁切wxFrame背景图片为wxPanel背景并且设置透明度, 效果马上就是其他语言实现的界面,还带透明效果.哈哈哈哈.

效果展示[真实效果哦]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

【wxWidgets实现透明wxPanel_核心实现_原创思想】

描述 wxWidgets 根本就没有实现过透明wxPanel容器,你设置wxTRANSPARENT_WINDOW,结果sorry 黑色,哈哈哈哈, 就是和你作对.想想当下那么漂亮的桌面, 背景, 透明, 特效.哎 悲哀啊,实现不了,就那死板的界面特性. 网上找了好久,也是乱七八糟,改底层代码还是算了吧,升级特要命.都是只…...

重大技术问题,iPhone 15 Pro Max面临“烧屏门”风波 | 百能云芯

近期&#xff0c;社交媒体平台上陆续涌现大量用户和数码博主就iPhone 15 Pro Max出现烧屏问题的投诉与评论。 烧屏问题是OLED屏幕常见的一个缺陷&#xff0c;这是由OLED屏幕发光机制引发的&#xff0c;OLED屏幕可视为由无数微小的灯泡-像素点构成&#xff0c;这些像素点可以独立…...

深度学习中的不确定性综述

领域学者&#xff1a; http://www.gatsby.ucl.ac.uk/~balaji/ 论文标题&#xff1a; A Survey of Uncertainty in Deep Neural Networks 论文链接&#xff1a; https://arxiv.org/pdf/2107.03342.pdf 概要 在过去的十年中&#xff0c;神经网络几乎遍及所有科学领域&#x…...

uni-app 小宠物 - 会说话的小鸟

在 template 中 <view class"container"><view class"external-shape"><view class"face-box"><view class"eye-box eye-left"><view class"eyeball-box eyeball-left"><span class"…...

POJ 3470 Walls 树上分桶

今天太晚了&#xff0c;代码先发上&#xff0c;思路明天说吧。 陌上花开&#xff0c;树上分桶 #include <iostream> #include <algorithm> #include <vector> using namespace std; /*** 对于y1不等于y2的&#xff0c;可以用datC求解&#xff0c;对于x1不等…...

HIVE-17824,删除hdfs分区信息,清理metastore元数据

当手动删除HDFS 分区数据时,但是并没有清理 Hive 中的分区元数据,删除操作无法自动更新hive分区表元数据。也就是从hdfs中删除大量分区数据,并没有执行如下命令: alter table drop partition commad 从hive 3.0.0开始可以使用MSCK的方法发现新分区或删除丢失的分区; MSCK [REPA…...

Python深度学习进阶与应用丨注意力(Attention)机制、Transformer模型、生成式模型、目标检测算法、图神经网络、强化学习详解等

目录 第一章 注意力&#xff08;Attention&#xff09;机制详解 第二章 Transformer模型详解 第三章 生成式模型详解 第四章 目标检测算法详解 第五章 图神经网络详解 第六章 强化学习详解 第七章 深度学习模型可解释性与可视化方法详解 更多应用 近年来&#xff0c;伴…...

javaEE -6(10000详解文件操作)

一&#xff1a;认识文件 我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进行数据保存时&#xff0c;往往不是保存成一个整体&#xff0c;而是独立成一个个的单位进行保存&#xff0c;这个独立的单位就被抽象成文件的概念&#xff0c…...

图像处理之《基于多MSB预测和Huffman编码的加密图像可逆数据隐藏》论文精读

一、文章摘要 随着云存储和隐私保护的发展&#xff0c;可逆数据隐藏在加密图像中(RDHEI)作为一种技术越来越受到人们的关注&#xff0c;它可以&#xff1a;在图像加密领域嵌入额外的数据&#xff0c;确保嵌入的数据可以无差错地提取&#xff0c;原始图像可以无损地恢复。本文提…...

Nginx安装配置项目部署然后加SSL

个人操作笔记记录 第一步&#xff1a;把 nginx 的源码包nginx-1.8.0.tar.gz上传到 linux 系统 第二步&#xff1a;解压缩 tar zxvf nginx-1.8.0.tar.gz 第三步&#xff1a;进入nginx-1.8.0目录 使用 configure 命令创建一 makeFile 文件。 直接复制过去运行 ./configur…...

【算法练习Day26】分发饼干摆动序列 最大子数组和

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 分发饼干摆动序列最大子数组…...

redis缓存击穿/穿透/雪崩面试回答

面试官&#xff1a;什么是缓存穿透 ? 怎么解决 ? 候选人&#xff1a; 嗯~~&#xff0c;我想一下 缓存穿透是指查询一个一定不存在的数据&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到 DB 去查询&#xff0c;可能导致…...

Jmeter性能测试 —— TPS拐点寻找

寻找TPS性能拐点1、准备脚本①在本地电脑调试Jmeter压测脚本 ②上传到压测机Jmeter所在的服务器 2、执行压力测试①执行压测脚本 jmeter –n –t xianchengzuse.jmx ②记录业务压测数据 3、监控服务器性能指标 ①监控CPU输入top命令 ②监控内存 free –m ③jstat监控sweep和…...

科技资讯|苹果穿戴新专利,表带、服装等织物可变身柔性屏幕或扬声器

根据美国商标和专利局&#xff08;USPTO&#xff09;本周公示的清单&#xff0c;苹果公司获得了一项新的技术专利&#xff0c;可以在 Apple Watch 表带、服装等物品上&#xff0c;引入基于织物的柔性扬声器。 根据专利描述&#xff0c;通过在织物中嵌入声学组件&#xff08;例…...

数据分析和机器学习的11个高级可视化图表介绍

可视化是一种强大的工具&#xff0c;用于以直观和可理解的方式传达复杂的数据模式和关系。它们在数据分析中发挥着至关重要的作用&#xff0c;提供了通常难以从原始数据或传统数字表示中辨别出来的见解。 可视化对于理解复杂的数据模式和关系至关重要&#xff0c;我们将介绍11…...

祝所有的程序猿们2023年的1024节快乐~

许久没更新Bolg了&#xff0c;眼看就要到1024节&#xff0c;其实也是没有可以更新的东西&#xff0c;目前在PhD&#xff0c;发现很多东西都还需要慢慢沉淀&#xff0c;放一doctoral college 开学的时候ppt的老图。 越往深处研究会陷入泥潭&#xff0c;考虑的细节将会越来越多&…...

Win10/Win11系统bitlocker正在等待激活如何解决?

有同学升级Win10系统后&#xff0c;发现C盘与D盘分区盘符中出现了黄色的锁定感叹号&#xff0c;还显示“bitlocker正在等待激活”&#xff0c;这可能是用户开启了bitlocker加密所导致的。下面就来看看解决的办法吧。 一、bitlocker正在等待激活的解决方法 打开控制面板-系统和安…...

酷开科技 | 酷开系统,为居家生活打开更精彩的窗口

电视在我们的日常生活中扮演着重要的角色。虽然&#xff0c;作为客厅C位的扛把子——电视的娱乐作用深入人心&#xff0c;但是&#xff0c;它的涵义和影响力却因我们每个人的具体生活环境而存在着种种差异&#xff0c;而我们的生活环境又受到我们所处的社会及文化环境的影响。 …...

谷歌真的不喜欢 Node.js ?

有人在 Quora 上提问&#xff0c;为什么谷歌不喜欢 Node.js 呢&#xff0c;Google 的 UX 工程师和来自 Node.js 团队的开发者分别回答了他们对这个问题的看法&#xff0c;对于编程语言来说&#xff0c;每一门语言都有它自己的优势&#xff0c;重要的是如何用它去解决问题。 谷…...

前端项目如何找到所有未被引用的文件

要找到 React 项目中所有未被引用的文件&#xff0c;可以使用工具来进行静态代码分析。以下是一些方法&#xff1a; 使用静态代码分析工具unimported&#xff1a; 静态代码分析工具可以找到未被引用的 JSX 文件。一个常用的工具是 “unimported”。以下是使用它的步骤&#xff…...

AI群演请就位—个人博客(一)

项目背景随着大语言模型能力的提升&#xff0c;AI在内容生成与互动体验中的应用日益广泛。传统互动叙事类产品&#xff08;如互动小说、角色扮演游戏&#xff09;主要依赖预设脚本与有限分支选择&#xff0c;存在剧情固化、重复体验感强、角色缺乏真实感等问题。大语言模型的出…...

Openblocks部署教程:快速构建企业内部应用

&#x1f449; 推荐使用 莱卡云服务器 搭建 Openblocks 低代码平台&#xff0c;能够提供稳定的运行环境与良好的访问体验&#xff0c;适合企业内部系统长期部署与扩展。一、什么是 Openblocks&#xff1f;Openblocks 是一个开源低代码平台&#xff0c;旨在帮助开发者通过可视化…...

基于Arm Cortex-M7内核GD32H7

基于Arm Cortex-M7内核&#xff0c;主频高达750MHz&#xff0c;并配备了高速大容量内存架构&#xff0c;旨在以“超高算力”与“实时通信”能力&#xff0c;为伺服控制、数字电源、智能家居&#xff08;885478&#xff09;等下一代智能装备提供核心硬件基础。 性能铁三角&#…...

应用组策略管理域环境实验指导文档

一、文档概述 本实验指导基于Windows Server 2019域环境,系统讲解组策略的配置、应用规则及场景化落地方法,帮助学员掌握域环境下批量管理用户和计算机的核心技能。所有实验均适配实际企业运维场景,可直接复用到生产环境。 二、实验前置准备 2.1 环境检查清单 域环境部署…...

深度解析PPP协议:定义、核心功能、工作流程与应用场景

深度解析PPP协议&#xff1a;定义、核心功能、工作流程与应用场景摘要一、PPP协议&#xff1a;基础定义1.1 PPP协议&#xff1a;是什么1.2 PPP协议&#xff1a;核心功能二、PPP协议&#xff1a;基本工作流程&#xff08;完整版流程图&#xff09;2.1 PPP工作流程图2.2 PPP完整工…...

STM32智能水产养殖系统设计与实践

1. 项目概述这个基于STM32的智能水产养殖大棚监测与控制系统&#xff0c;是我去年为一个淡水虾养殖场设计的实际项目。传统的水产养殖大棚主要依赖人工经验进行环境调控&#xff0c;不仅劳动强度大&#xff0c;而且难以实现精准控制。这套系统通过传感器网络实时采集水质参数&a…...

上班多年后才知道,原来提完离职后,第二天公司就同意你走,不是人情味,而是铜臭味。

昨天有个前同事找我喝酒&#xff0c;说提了离职&#xff0c;原本做好了交接一个月的心理准备。结果第二天HR就笑眯眯地跑来&#xff0c;说工作已经安排人接手&#xff0c;今天办完手续就可以走人了。这哥们感动坏了&#xff0c;觉得公司通情达理&#xff0c;不耽误他去下家报到…...

Java并发编程错误排查终极指南:10个常见问题诊断与解决方案

Java并发编程错误排查终极指南&#xff1a;10个常见问题诊断与解决方案 【免费下载链接】concurrent 这是RedSpider社区成员原创与维护的Java多线程系列文章。 项目地址: https://gitcode.com/gh_mirrors/co/concurrent Java并发编程错误排查是每个Java开发者必须掌握的…...

【稀缺首发】Blazor Hybrid 2026生产就绪架构图(含MAUI 7.0集成深度):仅开放给前500名订阅者下载的微软Partner认证模板包

第一章&#xff1a;Blazor Hybrid 2026生产就绪架构全景概览Blazor Hybrid 2026代表了微软跨平台富客户端开发的最新演进形态&#xff0c;其核心目标是统一Web与原生体验&#xff0c;在保持Razor语法一致性的同时&#xff0c;深度集成平台能力、离线可靠性、安全沙箱及企业级可…...

第16章 Mosquitto客户端开发实战

第16章 客户端开发实战 16.1 Python客户端 安装 pip install paho-mqtt基础示例 import paho.mqtt.client as mqttdef on_connect(client, userdata, flags, rc):print(f"Connected: {rc}")client.subscribe("sensor/#")def on_message(client, userdata, …...