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

让Qt窗口覆盖整个桌面区域(支持多屏幕桌面)

废话不多说,直接看代码: 

void WinFull::initWindow()
{x = GetSystemMetrics(SM_XVIRTUALSCREEN);y = GetSystemMetrics(SM_YVIRTUALSCREEN);w = GetSystemMetrics(SM_CXVIRTUALSCREEN);h = GetSystemMetrics(SM_CYVIRTUALSCREEN);
#ifdef DEBUGsetWindowFlags(Qt::FramelessWindowHint | Qt::Tool);
#elsesetWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint);
#endif    show();setGeometry(x, y, w, h);setScreen(qApp->primaryScreen());auto hwnd = (HWND)winId();SetWindowPos(hwnd, nullptr, x, y, w, h, SWP_NOZORDER | SWP_SHOWWINDOW);
}

第一:窗口必须是自定义 QMainWindow ,不能是 QWidget,用QWidget是有问题的。

第二:方法中最后五行代码必须按顺序执行,不按这个顺序会有问题。

http://www.xdnf.cn/news/689689.html

相关文章:

  • 软件工程期末速成--附带几道题
  • 高光谱成像相机:表型技术在林业育种和精确林业的应用
  • element-plus bug整理
  • 操作系统(Operator System)
  • 从0到1掌握Kotlin高阶函数:开启Android开发新境界!
  • .NET 9的AI亮点
  • Vue2+Vuex通过数组动态生成store数据(扁平模式)
  • Dockerfile正确写法之现代容器化构建的最佳实践
  • docker镜像与dockerfile
  • C++修炼:map和set的封装
  • 【线程与进程区别】
  • 高效合并 Excel 表格实用工具
  • AIoT赋能场馆数字化转型:智能管理新生态
  • 拨云见日:Arbitrum引领EVM的未来
  • Condition源码解读(二)
  • 4.8.2 利用Spark SQL计算总分与平均分
  • Flink 核心机制与源码剖析系列
  • spark- ResultStage 和 ShuffleMapStage介绍
  • 力扣HOT100之回溯:51. N 皇后
  • 电脑长期不关机会怎样?
  • 「Python教案」通用序列操作
  • 股指期货的基差跟升贴水概念
  • 力扣-找到字符串中所有字母异位符
  • JDBC+HTML+AJAX实现登陆和单表的CRUD
  • 互联网大厂Java求职面试:AI大模型推理服务性能优化与向量数据库分布式检索
  • linux 性能优化-内存
  • windows安装启动elasticsearch
  • Linux之高效文本编辑利器 —— vim
  • 家用热水器用户行为分析与事件识别
  • 微信小程序页面嵌套web-view点击系统导航返回时进行弹窗处理