当前位置: 首页 > news >正文

河南省工程建设信息网官网入口嘉兴seo网络推广

河南省工程建设信息网官网入口,嘉兴seo网络推广,乌鲁木齐网站建设公司,设计网站推荐语1、前言 当需要在标题栏添加一些额外的操作时候,比如添加 帮助 菜单,自带的标题栏开发起来比较困难(没了解不知道能不能实现),这时候,自己写一个标题栏就比较方便。 2、实现 首先是禁止掉原先的标题栏&a…

1、前言

当需要在标题栏添加一些额外的操作时候,比如添加 帮助 菜单,自带的标题栏开发起来比较困难(没了解不知道能不能实现),这时候,自己写一个标题栏就比较方便。

2、实现

首先是禁止掉原先的标题栏,就是创建无边框窗口 (官网描述,点此跳转)
默认情况下, 无边框窗口是不可拖拽的。 应用程序需要在 CSS 中指定 -webkit-app-region: drag 来告诉 Electron 哪些区域是可拖拽的(如操作系统的标准标题栏)设置后点击事件是无效的。
需要在可拖拽区域内部使用 -webkit-app-region: no-drag 则可以将其中部分区域排除。 请注意, 当前只支持矩形形状。(官网描述,点此跳转)

async function createWindow() {win = new BrowserWindow({title: 'xxxx工具',width: 1280,height: 720,// 不显示顶部栏frame: false,//实际尺寸不包含边框useContentSize: true,})}

然后使用 ipcMain 进行进程通信
监听 最小化、关闭、最大化事件
将代码写在createWindow当中

 // 监听放大缩小事件ipcMain.on('close', () => {win?.destroy()})ipcMain.on('max', () => {// true表示窗口已最大化.if (win?.isMaximized()) {win.restore() // 将窗口恢复为之前的状态} else {win?.maximize() // 窗口最大化}})ipcMain.on('min', () => {win?.minimize()})

在页面当中可以通过调用这些事件进行窗口的操作,来实现窗口状态的控制

3、优化

但是还可以通过双击标题栏来进行窗口的最大化还原操作

这时候就需要监听到其余最大化窗口和最小化窗口的事件,来改变图标的变化。、

窗口有很多实例事件,可以监听,
这里我们只对最大化和还原进行监听

然后通过webContents来发送监听到的值到渲染层

  // 对双击等其余操作导致的窗口变化监听// 事件: 最大化win.on('maximize', () => {win?.webContents.send('isMaxWindow', win?.isMaximized())})// 事件: 还原win.on('unmaximize', () => {// 在窗口从最大化状态还原时执行操作win?.webContents.send('isMaxWindow', win?.isMaximized())})

页面中使用ipcRenderer来获取主进程发送过来的值,这样不论是自己点击图标,或者双击、右键改变窗口的状态都可以正确的显示图标。

import {LineOutlined,BorderOutlined,BlockOutlined,CloseOutlined,
} from '@ant-design/icons'
import { useState, useMemo, FC, useEffect } from 'react'
import styles from './style.module.scss'type ipcOperateType = 'close' | 'min' | 'max'
type TopPageProps = {date: stringuserCode: string
}const TopPage: FC<TopPageProps> = () => {const [isMax, setIsMax] = useState<boolean>(false)useEffect(() => {window.ipcRenderer.on('isMaxWindow', (_event, message) => {setIsMax(message);});}, []);//   窗口事件const operateWindow = (operate: ipcOperateType) => {switch (operate) {case 'close':window.ipcRenderer.send('close')breakcase 'min':window.ipcRenderer.send('min')breakcase 'max':// 监听双击事件以及其余事件导致的窗口全屏还原window.ipcRenderer.on('isMaxWindow', (_event, message) => {setIsMax(message)})window.ipcRenderer.send('max')break}}return (<div className={styles.top_page}><div>我是标题xxxxx</div><div className={styles.action_box}><LineOutlinedonClick={() => {operateWindow('min')}}/>{!isMax && (<BorderOutlinedonClick={() => {operateWindow('max')}}/>)}{isMax && (<BlockOutlinedonClick={() => {operateWindow('max')}}/>)}<CloseOutlinedonClick={() => {operateWindow('close')}}/></div></div>)
}
export default TopPage

此时已经可以实现正常的最小化最大化操作

http://www.khdw.cn/news/60246.html

相关文章:

  • 企业自建网站有哪些百度网盘下载电脑版官方下载
  • 网站百度不到推广网站公司
  • 东莞教育平台网站建设看广告赚钱一天50元
  • 北海市住房和城乡建设局网站软文街怎么样
  • 移动端app开发需要哪些技术海淀seo搜索优化多少钱
  • 网页微信登录入口南昌seo建站
  • 杭州做网站公司有哪些seo独立站
  • 多米诺网站建设域名停靠浏览器
  • 广州网站建设 乐云seo公司网站与推广
  • 郑州快速网站优化公司首选it培训机构怎么样
  • 钓鱼网站到底怎么做营销到底是干嘛的
  • 昆明企业网站建设公司怎么在百度推广自己的公司
  • 给别人做网站挣钱么百度seo怎么查排名
  • 东莞做网站企业铭店铺推广渠道有哪些方式
  • 腾讯云快速建站宁波seo超级外链工具
  • 广州网站建设+致茂专门做排行榜的软件
  • 东软网站建设方案友情链接赚钱
  • 开放平台直播阿里巴巴seo排名优化
  • 招聘信息如何发布抖音优化排名
  • 行业门户网站系统西安分类信息seo公司
  • 做电脑系统网站游戏代理怎么找渠道
  • clojurescript网站开发泰安网络推广培训
  • 临沂做网站wyjzgzs谷歌网页版
  • 做游戏网站需要多少钱千峰培训
  • 云服务器可以做两个网站吗华为手机网络营销策划方案
  • 怎么建立自己的网站?网络推广营销方案免费
  • 如何做挂qq的网站网站收录入口
  • nas做网站要哪些东东北京官网seo收费
  • html5游戏WordPress深圳seo公司助力网络营销飞跃
  • 怎么看网站是否被百度惩罚软件开发外包平台