Electron 无边框窗口最大化最小化关闭功能

Electron 无边框窗口最大化最小化关闭功能

目的

  • 实现无边框窗口,并添加最大化最小化和关闭功能

前提

操作流程

  1. 先在界面上放三个按钮
    <!-- 窗口的右上角三个操作按钮 -->
<section style="-webkit-app-region: no-drag">
<button type="button" id="maxbt" @click="maxbt">max</button>
<button type="button" id="minbt" @click="minbt">>min</button>
<button type="button" id="closebt" @click="closebt">>close</button>
</section>

**-webkit-app-region: drag是可拖动的样式**

**-webkit-app-region: no-drag是不可拖拽样式**

2. 添加事件把要做的操作发送给主进程

``` javascript  在Vue里面

Electron 无边框窗口最大化最小化关闭功能

```在原生 JavaScript 里面

var ipc = require('electron').ipcRenderer;
document.getElementById('maxbt').addEventListener('click', () => {
console.log('hello vscode!')
ipc.send('window-max'); })
document.getElementById('minbt').addEventListener('click', () => {
console.log('hello vscode!')
ipc.send('window-min'); })
document.getElementById('closebt').addEventListener('click', () => {
console.log('hello vscode!')
ipc.send('window-close'); })
  1. 在主进程中调相应的方法
const electron = require('electron')
const ipc = electron.ipcMain
//登录窗口最小化
ipc.on('window-min', function () {
mainWindow.minimize();
})
//登录窗口最大化
ipc.on('window-max', function () {
if (mainWindow.isMaximized()) {
mainWindow.restore();
} else {
mainWindow.maximize();
}
})
ipc.on('window-close', function () {
mainWindow.close();
}) app.on('ready', createWindow) app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})

ipc不适合大数据通讯,最好只做命令的传递 
源码

上一篇:Ubuntu 16.04 启用 点击Launcher图标,窗口实现最小化 功能


下一篇:图结构练习——最小生成树(prim算法(普里姆))