electron 监听窗口高端变化

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

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

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

javascript 复制代码
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`

javascript 复制代码
<script>

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



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

</script>

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

javascript 复制代码
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 最后在渲染进程中接收主进程发送的窗口高度变化消息

javascript 复制代码
<script>

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



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

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

  });

</script>
相关推荐
小二·2 分钟前
Vue 3 组件通信全方案详解:Props/Emit、provide/inject、事件总线替代与组合式函数封装
前端·javascript·vue.js
研☆香10 分钟前
html框架页面介绍及制作
前端·html
be or not to be1 小时前
CSS 定位机制与图标字体
前端·css
DevUI团队1 小时前
🔥Angular高效开发秘籍:掌握这些新特性,项目交付速度翻倍
前端·typescript·angular.js
Moment1 小时前
如何在前端编辑器中实现像 Ctrl + Z 一样的撤销和重做
前端·javascript·面试
宠..1 小时前
优化文件结构
java·服务器·开发语言·前端·c++·qt
Rysxt_1 小时前
Vue.js 中 LocalStorage 与 SessionStorage 深度实践指南
vue.js·localstorage·sessionstorage
Tencent_TCB1 小时前
AI Coding全流程教程——0基础搭建“MEMO”健康打卡全栈Web应用(附提示词)
前端·人工智能·ai·ai编程·codebuddy·claude code·cloudbase
小猪猪屁2 小时前
权限封装不是写个指令那么简单:一次真实项目的反思
前端·javascript·vue.js
hteng2 小时前
跨域 Iframe 嵌套:调整内部 Iframe 高度的终极指南 (以及无解的真相)
前端