Skip to content

ciqtek/screen-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
zhouliwen
May 6, 2022
371d7e2 · May 6, 2022

History

1 Commit
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022
May 6, 2022

Repository files navigation

🚄 使用教程

screen-main

用来解决软件在不同大小和分辨率的自适应问题

安装:

 - npm i screen-main --save

使用:

>main process

在窗口创建完成之后使用

//mainWindow = new BrowserWindow()
 const zoomF = new ZoomFactor(mainWindow, {
    callRender: true,
    initialWidth: 1600,
    timeOut: 2000
  })
  //doSomething

>render process

//渲染进程准备好后从主进程获取当前分辨率信息
ipcRenderer.invoke('render-process-ready').then((res:ScaleDPMsg & { preDP: ScaleDPMsg }) => {
  //doSomething
})
//当分辨率改变后会通过这个时间通知渲染进程
ipcRenderer.on('screen-dp-changed', (_e, args:ScaleDPMsg & { preDP: ScaleDPMsg }) => {
  //doSomething
})

📖 文档

Class: ZoomFactor

class ZoomFactor {
    constructor(win: Electron.BrowserWindow, dpOptions?: DpOptions)
    // 检测分辨率适应情况
    checkDP: () => ScaleDPMsg & { preDP: ScaleDPMsg }
 }

interface

  interface DpOptions {
    //设计图初始宽度
    initialWidth: number,
    //设计图初始高度
    initialHeight: number,
    // 分辨率改变后多久触发回调,当多次触发回调可以将这个属性设置大一点
    timeOut: number,
    // 监听那些属性的改变
    watchValue: Array<'bounds' | 'workArea' | 'scaleFactor' | 'rotation'>,
    // 改变后触发主进程中传入的回调
    mainCb?: (scaleDPMsg?: ScaleDPMsg & { preDP: ScaleDPMsg }) => void,
    //是否通知渲染进程
    callRender: boolean
  }
  
  type ScaleDPMsg = {
    // 改变后的工作宽度
    width: number,
    // 改变后的工作高度
    height: number,
    // 比列,在操作窗口大小时都需要乘上这个比例
    ratio: number,
    // 原始缩放比例
    originScale: number
  }
  // 记录着上一次的分辨率信息
  type preDP = ScaleDPMsg 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published