首页 > 解决方案 > 如何在没有遥控器的情况下创建关闭、最大化和最小化按钮?

问题描述

创建一个无框窗口,我需要 3 个操作按钮来“关闭”、“最小化”和“最大化”。

我曾经像这样创建它们:

在我的 main.js 里面:

function createWindow () {
  const mainWindow = new BrowserWindow({
    (...)
    frame:false,
    webPreferences: {
      nodeIntegration: true,
      (...)
    }
  })

在我的页面 JS 文件中,我只是用来写:

const {remote} = require('electron');

function close() {
    var window = remote.getCurrentWindow();
    window.close();
  }

function minimize() {
    var window = remote.getCurrentWindow();
    window.minimize();
  }

它仍然有效..但我收到此警告:

“Electron 弃用警告 'remote' 模块已弃用,将在未来版本的 Electron 中默认禁用。为确保顺利升级并消除此警告,请在此窗口的 WebPreferences 中指定 {enableRemoteModule: true}。”

而且我真的找不到不使用遥控器的方法来执行此操作。我很感激任何帮助!谢谢

标签: electron

解决方案


您应该从渲染器进程向主进程发送一条消息。

所以在你的渲染器过程中添加一个事件到你的最大化按钮并发送一条消息:

const ipc = require('electron').ipcRenderer;
ipc.send('max');

在您的主进程中收到此消息:

ipcMain.on('max', () => {
    //mainWindow is the reference to your window
    mainWindow.maximize()
})

要在主进程中启用 ipcMain,请像这样添加 ipcMain:

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

这是一个可视化主要过程的示例: 在电子主进程中接收来自 ipc 的消息

这是来自电子的重大更改说明
这是一篇关于它的好文章


推荐阅读