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

electron 监听窗口高端变化

一、在主进程中监听窗口大小变化

1. 使用 `BrowserWindow` 的实例方法

在主进程中,可以获取窗口实例并添加 `resize` 事件监听器。

const { BrowserWindow } = require("electron");



const win = BrowserWindow.getFocusedWindow();

if (win) {

  win.on("resize", () => {

    const { height } = win.getBounds();

    console.log(`窗口高度变为:${height}`);

  });

}

二、在渲染进程中监听窗口大小变化

1. 使用 `ipcRenderer` 与主进程通信

在渲染进程中,可以使用 `ipcRenderer` 发送消息给主进程,让主进程监听窗口大小变化并将结果发送回渲染进程。

1.1 首先在渲染进程中引入 `ipcRenderer`

<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.send("start-watch-window-size");

</script>

1.2 然后在主进程中监听来自渲染进程的消息并添加窗口大小变化监听器

const { ipcMain, BrowserWindow } = require("electron");



ipcMain.on("start-watch-window-size", () => {

  const win = BrowserWindow.getFocusedWindow();

  if (win) {

    win.on("resize", () => {

      const { height } = win.getBounds();

      win.webContents.send("window-size-changed", height);

    });

  }

});

1.3 最后在渲染进程中接收主进程发送的窗口高度变化消息

<script>

  const { ipcRenderer } = require("electron");



  ipcRenderer.on("window-size-changed", (event, height) => {

    console.log(`窗口高度变为:${height}`);

  });

</script>


http://www.kler.cn/a/370040.html

相关文章:

  • 第14章:Python TDD应对货币类开发变化(一)
  • OpenVela 各模块之间的交互方式和数据流
  • Java实现微店商品详情接口调用的完整指南
  • blender 安装笔记 linux 2025
  • Effective C++读书笔记——item22(明确变量的作用域和访问权限)
  • map和set的使用(一)详解
  • JS | CommonJS、AMD、CMD、ES6-Module、UMD五种JS模块化规范
  • 海外发稿:探索海外外媒宣发分发渠道-大舍传媒
  • 如何使用VBA识别Excel中的“单元格中的图片”(1/2)
  • 着色器的认识
  • JMeter之JMX文件解释
  • Windows驱动开发(三)—— 驱动和应用层通信的几种方式
  • Openpyxl--学习记录
  • 【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』
  • 如何将 Excel 数据转换为 SQL 脚本:基于 Java 的全面解析
  • 问:数据库SQL优化实践整理?
  • python 相关
  • Android--简易计算器实现
  • Redis中Lua脚本的使用场景
  • 深度学习领域如何正确地读取视频
  • java OOP 对象操作
  • 关于<a-upload-dragger>实现选择文件夹,上传文件夹中符合要求的文件,并在所有符合要求文件上传完成后统一进行提示。这里面文件是直接上传到七牛云
  • 利用ChatGPT完成2024年MathorCup大数据挑战赛-赛道A初赛:台风预测与分析
  • springMVC中的请求拦截器
  • 【杂谈】城市规划教育的危与机
  • 力扣中等题——顺次数