electron +vue自定义点击最大化、最小化和关闭窗口事件功能(1)_vue-electron ipcmain内部程序关闭窗口

本文介绍了如何在Electron应用中使用`ipcRenderer`和`ipcMain`模块进行渲染进程与主进程之间的通信,详细讲解了窗口操作(如最小化、最大化、恢复和关闭)的实现。同时提到了前端面试中可能遇到的问题和建议,包括算法准备和职业选择策略。
摘要由CSDN通过智能技术生成

}

图标 效果如下(此时已具备最小化、最大化、恢复以及关闭当前窗口的功能):

在这里插入图片描述

二、使用ipcRenderer 和 ipcMain模块发送消息,让主进程、渲染进程通信;


在渲染进程给主进程发消息,通知主进程我要进行什么操作

注意:

  1. 在渲染进程中通过ipcRender模块给主进程发送信息;
  2. 主进程中接收渲染进程的消息,并调用函数,进行相应的操作。

<span class=“el-icon-minus” @click=“minimizeWin”>

<span class=“el-icon-full-screen” @click=“maximizeWin”>

<span class=“el-icon-close” @click=“closeWin”>

background.js文件:中新增如下代码:

async function createWindow() {

createMenu();

// Create the browser window.

win = new BrowserWindow({

width: 1300,

height: 660,

minWidth: 1300,

useContentSize: true,

resizable: true,

frame: false,//通过设置frame的值为false可以隐藏窗口的边框。

// backgroundColor: ‘#DC143C’,

// titleBarStyle: ‘hidden’,

webPreferences: {

webSecurity: false, //Remove cross domain restrictions

nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION,

// eslint-disable-next-line no-undef

preload: ${__static}/preload.js

},

//${__ Static} corresponds to the public directory

// eslint-disable-next-line no-undef

icon: ${__static}/img/icons/logo-64.png

// icon: ${__static}/img/icons/favicon.ico

});

if (process.platform === ‘darwin’) {

// eslint-disable-next-line no-undef

app.dock.setIcon(${__static}/img/icons/logo-512.png);

}

if (process.env.WEBPACK_DEV_SERVER_URL) {

// Load the url of the dev server if in development mode

await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL);

/* if (!process.env.IS_TEST) win.webContents.openDevTools(); */

} else {

createProtocol(‘app’);

// Load the index.html when not in development

win.loadURL(‘app://./index.html’);

//Detect version updates

// updateHandle(win, feedUrl);

}

win.on(‘closed’, () => {

win = null;

});

globalShortcut.register(‘CommandOrControl+Shift+i’, function () {

win.webContents.openDevTools();

});

// esc,

globalShortcut.register(‘ESC’, function () {

win.unmaximize();

});

// 新增三块 1 2 3; win是 win = new BrowserWindow({…})来的。

// 1. 窗口 最小化

ipcMain.on(‘window-min’,function(){ // 收到渲染进程的窗口最小化操作的通知,并调用窗口最小化函数,执行该操作

win.minimize();

})

// 2. 窗口 最大化、恢复

总结
  • 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~

祝大家都有美好的未来,拿下满意的 offer。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值