首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFC窗口任务栏显示图标和主窗口最小化系统托盘显示图标

MFC窗口任务栏显示图标很简单, 只需要在窗口初期化函数OnInitDialog()添加ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); 主窗口系统托盘显示图标以及恢复窗口是参考某位大神代码...(一)  原理     1、最小化原理:首先要将窗口隐藏,然后右下角绘制图标。     ...2、恢复原理:将窗口显示,再将托盘图片删除。...       ShowWindow(SW_HIDE);    //隐藏主窗口     }     2、恢复界面函数,头文件定义消息响应函数     afx_msg LRESULT OnShowTask...                   {                     this->ShowWindow(SW_SHOW);//简单显示窗口完事儿

3K80

electron 自定义窗口

('parent.html') child.loadFile('child.html') 窗口总是显示窗口顶部,如果父窗口关闭,窗口自动关闭。...可以跨过窗口操作父窗口内容。 Mac OS X下,移动父窗口窗口会随着父窗口移动,但在Windows下子窗口不会移动 模态窗口 模态窗口是禁用父窗口窗口,无法跨过窗口操作父窗口内容。...('parent.html') child.loadFile('child.html') 模态窗口Mac OS X下子窗口自动顶部居中对齐,并且没有标题栏,只能通过调用窗口close()方法关闭模态窗口...;Windows下,模态窗口仍然会显示菜单和标题栏。...child.close() Mac OS X下,模态窗口显示后,父窗口仍然可以拖动,但无法关闭;Windows下,模态窗口显示后父窗口无法拖动。

9710
您找到你想要的搜索结果了吗?
是的
没有找到

挖洞经验 | 综合三个Bug实现Discord桌面应用RCE漏洞

虽然DiscordElectron架构并不是开源,但ElectronJS代码是保存在应用本地,所以我是可以提取查看到。...由于Electron内置JS代码渲染时可以在任意Electron APP执行,所以一般我测试ElectronRCE时,习惯首先在渲染时用Electron内置JS代码来测试。...但是,由于目标应用不同Electron版本使用或BrowserWindow选项设置,Discord这里Electron运行启动时,我实际测试PoC总是不稳定,所以我把测试重点放在了预加载脚本上。...中导航(navigating)到另一URL顶层窗口。...为了进行导航绕过测试,我创建了一个简单Electron应用,然后发现,顶部导航(top navigation)”will-navigate” 事件并不会从iframe跳出,具体来说,如果顶部导航所属域和

2.3K30

electron-vue仿微信桌面端|electron聊天实例

electron-vchat客户端聊天实例是基于electron+vue+vuex+Node+vue-router等技术开发仿制微信pc桌面聊天项目。...electron主进程创建窗口 通过electron提供BrowserWindow对象创建窗体,electron-vue构建项目后,主进程入口页面是src/main/index.js import...frame: false, resizable: true, // 窗口创建时候是否显示....electron实现自定义顶部最大/小化、关闭按钮、无外框窗口 electron 配置 frame: false 后,就能去除原窗体顶部,原先顶部操作栏就没有了,需要自定义配置。...execFile方法执行exe文件,exe调用同级目录下微信截图dll,调出截图工具 // 可编辑div contenteditable粘贴发送图片 submitPasteImage{ let that

5.6K41

学透 Electron 自定义菜单

传统 Web APP 开发基本上不会涉及到菜单,但是 Electron 里面它提供了对于菜单全面的控制,你可以通过 Menu、MenuItem 模块来创建应用所需自定义菜单。...这三种菜单含义分别是: 应用菜单:应用菜单通常位于应用程序顶部,提供了用户可能用到各种操作,如程序快捷方式、常用文件夹及系统命令等。 上下文菜单:应用里面点击右键看到菜单。...菜单模板: 菜单 template 是一个对象数组,每个对象会定义一个独立菜单,它会显示应用菜单 Bar 位置,显示文字通过 label 属性进行定义。...需要注意是:上下文菜单,需要在渲染进程中进行实现。渲染进程是需要通过remote模块调用主进程模块。...contextMenu.popup({ window: remote.getCurrentWindow() }); }, false); Dock菜单 最后,我们一起看看 Dock 菜单,Dock 菜单实现也是主进程

2.3K50

10分钟实现Typora(markdown)编辑器

图3.1 我们应用程序线框显示,用户可以左侧窗格输入文本,或者从用户文件系统文件中加载文本。 在这一章,我们为我们应用奠定了基础。...index.html,我们添加清单3.3标记来创建图3.5浏览器窗口。 ? 图3.5 开始我们第一个未样式化Electron应用 列表3.3 我们应用标记:....正如我们第1章和第2章讨论,我们应用程序总是跟上Chrome最新版本,所以我们可以放心地使用Flexbox布局模式,而不用担心跨浏览器兼容性。 使用Flexbox创建页面布局:....优雅地显示浏览器窗口 如果你仔细观察你应用程序启动,您将注意到,Electron加载index.html并在窗口中呈现DOM之前,窗口完全为空。...如果我们隐藏窗口直到内容被加载呢?然后,当UI准备好时,我们显示窗口,并避免短暂地暴露一个空窗口

2.6K50

第三章 构建Markdown应用程序 | Electron in Action(中译)

顶部有一系列按钮,允许用户从文件系统加载文本文件,并将结果写入剪贴板或文件系统。 应用程序第一阶段,我们构建了以下界面。图3.1。...index.html,我们添加清单3.3标记来创建图3.5浏览器窗口。 [figure35.png] 图3.5 开始我们第一个未样式化Electron应用 列表3.3 我们应用标记:....正如我们第1章和第2章讨论,我们应用程序总是跟上Chrome最新版本,所以我们可以放心地使用Flexbox布局模式,而不用担心跨浏览器兼容性。 使用Flexbox创建页面布局:....优雅地显示浏览器窗口 如果你仔细观察你应用程序启动,您将注意到,Electron加载index.html并在窗口中呈现DOM之前,窗口完全为空。...如果我们隐藏窗口直到内容被加载呢?然后,当UI准备好时,我们显示窗口,并避免短暂地暴露一个空窗口

2K30

nodeIntegrationInSubFrames | Electron 安全

SubFrames 开启 Node.js 这是一个实验性质选项,决定是否允许页面(iframe)或窗口(child window)中集成Node.js; 预先加载脚本会被注入到每一个iframe...,虚拟机里又装了虚拟机一个道理,而最终物理机被称为顶级浏览上下文 Electron 之前测试,我们只用到了一个窗口,我们一直称之为主窗口,但从逻辑角度来说,没有窗口存在,也就没有什么主窗口之说...大家有些时候使用应用程序时候,点击某个功能会跳出来一个新窗口,这个就叫做窗口 举个例子,我们电脑版微信中查看公众号文章时,点击文章,会出现一个新窗口显示文章内容,而不是原本窗口呢,这样原本窗口可以继续聊天等...之前一些版本,似乎窗口会继承父窗口一些配置,但后来主要是为了生命周期等,简单来说,我把父窗口关了,窗口也会被关闭或其他设置 该参数要在父窗口初始化是配置,而不是窗口 0x03 测试 iframe...nodeIntegrationInSubFrames: true 时窗口是否能够读取父窗口 Preload 内容 获取失败,看起来官方文档描述 child window 并不是官方文档其他部分

10110

窗口创建问题 | Electron 安全

,突然在当前窗口之外跳出来一个窗口,那就是一个新窗口创建了 Electron ,一个新窗口创建背后都意味着存在对应管理操作,这种管理可能可以让窗口赋予非凡权限,例如执行 Node.js 创建新窗口分为两种...之前章节,我们尝试过使用 BrowserWindow、BaseWindow 主进程创建窗口,同时我们尝试过渲染进程通过 window.open 创建新窗口 除此之外还有两个特例,就是...渲染进程创建新窗口之前文章中出现过绕过安全限制情况(iframe + window.open) ,但 window.open 不仅仅是绕过安全限制那么简单,其实在 Electron window.open...根据 web 技术对 window.open 描述,也和之前 web 嵌入章节一样,如果父窗口窗口同源,则可以通过对象关系进行访问,不同源则不行 当然, features 也有 noopener...同源情况下,窗口获取父窗口上下文测试 同源情况下访问是双向,与之前 iframe 、object 之类没有区别 非同源情况下,按照正常来说,父窗口访问窗口应该还是一样 结果并不是我们想那样

9610

第四章-使用本机文件对话框和帮助进程间沟通 | Electron实战

如果在对话框属性数组激活多重选择,用户可以选择 多个文件。为了一致性,Electron总是返回一个数组。 ? 图4.3 选择文件后,文件完整路径将被记录到终端窗口控制台。...macOS,我们能够从窗口顶部从表格形式显示对话框,而不是显示窗口前面(清单4.6)。...,Electron现在将Open File对话框显示为一个工作表,该工作表从传递给方法窗口下拉,如图4.8所示。...我们主进程和渲染进程顶部都使用了Node内置requrie函数 当我们需要一个模块时,我们究竟要导入什么?Node,我们显式地声明应该从模块导出什么功能,如清单4.8所示。...macOS,我们可以通过dialog. showopendialog()中提供对该窗口引用作为第一个参数,使对话框从其中一个窗口作为工作表下拉。

1.9K20

Cocos Creator 编辑器扩展:Quick Finder

使用说明 搜索 按下快捷键(默认为 F1)或者点击编辑器顶部菜单栏 扩展 -> Quick Finder -> 搜索 即可打开搜索栏。 搜索栏输入关键词就会得到符合条件文件列表。...设置 点击编辑器顶部菜单栏 扩展 -> Quick Finder -> 设置 即可打开扩展设置面板。 设置面板 设置面板你可以更换打开搜索栏快捷键,也可以自定义一个自己喜欢快捷键。...编辑器窗口 首先,编辑器提供窗口实际上也是使用 Electron 创建,只不过编辑器内部对窗口进行了二次封装,并建立了自己开发规范。...Electron 窗口 如果直接使用 Electron 创建窗口,我们可以把扩展页面完成当做一个 Web 前端项目来做,写起来舒服多了。...实际上,由于扩展只进行信息采集(名称,扩展名),并不读取文件内容,处理起来还是非常快。项目里 8000+ 文件也就是一下功夫,可以说是无感。

96211

客户端开发(Electron)认识窗口

背景说明: 窗口就是我们电脑端经常使用软件时候显示Logo,标题和操作最小化,最大化,关闭按钮标题栏及标题栏下面显示内容整个窗口,这往往Web前端接触不是那么多,但要开发一款体验不错...窗口距离屏幕左侧距离 y 窗口距离屏幕顶部距离 center 窗口是否居中显示 movable 窗口是否可移动 控制窗口尺寸: width 窗口宽度(像素),默认800...,在窗口对象上新增frame属性且设置值为false,如下图: VueApp.vue通过html标签来绘制我们标题栏,绘制后结果如下图所示: 为标题栏按钮增加事件: 按钮事件和调用函数定义均与...Vue一致,我们需要考虑是如何与Electron联通来调用对应API: 调整窗口对象的如下所示属性,切记启用remote: App.vue中导入electron对象: const { remote...我们需要在主进程关闭展示窗口,并由我们渲染进程控制: 总结: 本篇主要介绍了对于Electron开发GUI应用是对于窗口标题栏自定义,简单做了一些演示,后续还有一块就完成了整个窗口部分内容

5K60

electron仿制qq(2) 主界面制作

有可能是根据分辨率来显示) 最大宽度: 605px 顶部头像区域高度: 140px 底部选项区域高度: 40px 搜索框高度: 30px 头像直径/高度: 50px 右键菜单宽度: 180px 下载安装...将主窗口 show:false 暂时不让显示 之后再创建一个main.js 让他来创建我们要做窗口!...useContentSize: true, //使用web网页size, 这意味着实际窗口size应该包括窗口框架size,稍微会大一点,默认 frame: false..., //去掉顶部 transparent: true, //透明窗口 type: 'toolbar', //工具栏窗口 webPreferences...版权声明 本文只学习electron使用 不做任何商业用途,文章中使用腾讯qq相关图片和相关Logo都作为学习使用,如果侵犯了腾讯相关权益,请联系作者删除!

1.4K41

用JS开发跨平台桌面应用,从原理到实践

一个 Electron 应用总是有且只有一个主进程。...我们渲染进程创建 dialog 对象其实并不在我们渲染进程,它只是让主进程创建了一个 dialog 对象,并返回了这个相对应远程对象给了渲染进程。...就像在浏览器中使用一样,这种存储相当于应用程序永久存储了一部分数据。有时你并不需要这样存储,只需要在当前应用程序生命周期内进行一些数据共享。...可以通过指定titleBarStyle选项来再将工具栏按钮显示出来,将其设置为hidden表示返回一个隐藏标题栏全尺寸内容窗口左上角仍然有标准窗口控制按钮。...,而不借助客户端界面资源,一般菜单分为两种: 应用程序菜单:位于应用程序顶部全局范围内都能使用 上下文菜单:可自定义任意页面显示,自定义调用,如右键菜单 Electron为我们提供了Menu模块用于创建本机应用程序菜单和上下文菜单

6.9K50

微软 VSCode IDE 源码分析揭秘

实现桌面程序 核心环境 整个项目完全使用 typescript 实现,electron 运行主进程和渲染进程,使用 api 有所不同,所以 core 每个目录组织也是按照使用 api 来安排.../windows.ts 接下来到了 electron windows 窗口,open 方法 doOpen 执行窗口配置初始化,最终调用 openInBrowserWindow -> 执行 doOpenInBrowserWindow.../main.ts main.ts 启动应用后就创建了一个主进程 main process,它可以通过 electron 一些模块直接与原生 GUI 交互。...窗口是通过 main 文件里主进程调用叫 BrowserWindow 模块创建。 主进程与渲染进程之间通信 electron ,主进程与渲染进程有很多通信方法。...进程通常缓存查找数据,并且仅仅将数据截取和发送给主进程.这有利于通过 IPC 发送查找数据之前减小查找时运行开销,这样做很有价值.因此,发送查找数据,我们应当异步通知所有进程来截取任何待查找数据

2.6K20

electron 模块BrowserWindow

模块BrowserWindow BrowserWindow模块是用于创建和管理图形用户界面的窗口。它提供了一种桌面应用程序创建原生窗口方式,类似于浏览器窗口。...closed: 当窗口关闭时触发此事件。 close: 关闭窗口之前触发此事件。可以在此事件处理程序执行清理操作或阻止窗口关闭。 show: 当窗口显示时触发此事件。...但是,这样写代码会有一个问题:我们创建完窗口,就会立即显示出来,加载index.html 紧随其后,但是这中间会有个时间间隔,会出现一瞬间白屏现象,我了解决这个问题,我们可以创建窗口时候,不让窗口显示...webContents 属性 当我们 Electron 创建一个窗口时,窗口网页内容由 WebContents 对象表示。...,它角色和功能比较类似于我们浏览器 BOM 对象,用于控制窗口中加载网页内容和与之进行交互。

15610

控件anchor和dock属性_控件常用属性

设计窗体时,这两个属性特别有用,如果用户认为改变窗口大小并不容易,应确保窗口看起来显示不是那么乱,并编写很多代码来实现这个效果,许多程序解决这个问题都是禁止给窗口重新设置大小 这显然是解决问题最简单方法...,这个属性迫使控件将其自身定位在父窗体或父控件某个相对或绝对位置,这个属性有四个可以开启或关闭值 * Top–表示控件与父窗体(父控件)相关顶部应该保持固定...或移动其位置,确保总是位于屏幕底部。...虽然Anchor属性也可以实现这一点,但是Dock属性使得能够父窗体窗体可以再上方(或旁边)互相堆叠,如果某个子窗体改变了大小,其它停驻在它旁边窗体也会随之改变。...和Anchor属性不同是,可以将Dock属性设置为一个单值: *Top–迫使控件位于父窗体(或控件)顶部,如果有同一个父窗体其它控件也被设置为停驻在顶部的话,那么控件将在彼此上方互相堆叠

1.3K30
领券