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

目的
实现无边框窗口,并添加最大化最小化和关闭功能
前提
了解Electron 主进程和渲染进程的通讯
了解 BrowserWindow相关功能
操作流程

1.首先创建一个无边框的Window窗口

创建win的时候指定frame:false

var win = new BrowserWindow({
  transparent: true,
  frame: false
})


2.在界面上放三个按钮

/**-webkit-app-region: drag是可拖动的样式**/ 
<body style="-webkit-app-region: drag">
      <section style="-webkit-app-region: drag">
          <!--html代码-->
          <h1>Hello World!</h1>
      </section>

      <section style="-webkit-app-region: no-drag">
          <button type="button" id="maxbt">max</button>
          <button type="button" id="minbt">>min</button>
          <button type="button" id="closebt">>close</button>
      </section>
    <!-- All of the Node.js APIs are available in this renderer process. -->
    We are using Node.js <script>document.write(process.versions.node)</script>,
    Chromium <script>document.write(process.versions.chrome)</script>,
    and Electron <script>document.write(process.versions.electron)</script>.

    <script>     // require('electron').ipcRenderer;
      // You can also require other files to run in this process
      require('./renderer.js')
    </script>
  </body>


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

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');

})

<div class="se-preview-section-delimiter"></div>



4.在主进程中调相应的方法

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();
})


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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值