MFC:程序的托盘显示
介绍
关键技术,API函数Shell_NotifyIcon,具体查看msdn吧
实现的主要代码
#define MY_TRAY_ICON_ID (1)/
//其他代码:略BEGIN_MESSAGE_MAP(CTestShowTrayDlg, CDialogEx)//...ON_MESSAGE(WM_MY_TRAY_ICON, &CTestShowTrayDlg::OnMessageTrayIcon)/
END_MESSAGE_MAP()void CTestShowTrayDlg::ShowTrayIcon()
{NOTIFYICONDATA nid = { 0 };nid.cbSize = sizeof(NOTIFYICONDATA);nid.hWnd = this->m_hWnd;nid.uID = MY_TRAY_ICON_ID;nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;nid.uCallbackMessage = WM_MY_TRAY_ICON; //托盘图标中消息回调,如鼠标左键、右键等等nid.hIcon = m_hIcon;_tcscpy_s(nid.szTip, _T("测试托盘显示图标"));Shell_NotifyIcon(NIM_ADD, &nid); //在托盘区添加图标
}void CTestShowTrayDlg::DelTrayIcon()
{NOTIFYICONDATA nid = { 0 };nid.cbSize = sizeof(NOTIFYICONDATA);nid.hWnd = this->m_hWnd;nid.uID = MY_TRAY_ICON_ID;Shell_NotifyIcon(NIM_DELETE, &nid); //在托盘区移除图标
}LRESULT CTestShowTrayDlg::OnMessageTrayIcon(WPARAM wParam, LPARAM lParam)
{if (wParam != MY_TRAY_ICON_ID)//wParam传入nid.uID{return TRUE;}switch (lParam){case WM_LBUTTONUP:case WM_LBUTTONDBLCLK:{OnMenuShowWindow();break;}case WM_RBUTTONUP://右键起来时弹出快捷菜单,这里只有一个“关闭”{CPoint ptCursor;::GetCursorPos(&ptCursor);//从资源中加载菜单CMenu mTrayMenu;mTrayMenu.LoadMenu(MAKEINTRESOURCE(IDR_MENU_TRAY));CMenu* pMenu = mTrayMenu.GetSubMenu(0);if (pMenu) pMenu->TrackPopupMenu(TPM_LEFTALIGN, ptCursor.x, ptCursor.y, this);mTrayMenu.DestroyMenu(); //资源回收break;}}return TRUE;
}//显示主界面
void CTestShowTrayDlg::OnMenuShowWindow()
{this->ShowWindow(SW_SHOWNORMAL);this->SetForegroundWindow();this->SetActiveWindow();
}//退出
void CTestShowTrayDlg::OnMenuExit()
{DelTrayIcon();CDialogEx::OnCancel();
}void CTestShowTrayDlg::OnOK()
{// TODO: 在此添加专用代码和/或调用基类//屏蔽ESC/Enter//CDialogEx::OnOK();
}void CTestShowTrayDlg::OnCancel()
{this->ShowWindow(SW_HIDE);//屏蔽ESC/Enter//CDialogEx::OnCancel();
}
参看
https://www.cnblogs.com/htj10/p/11688347.html
相关文章:
MFC:程序的托盘显示
介绍 关键技术,API函数Shell_NotifyIcon,具体查看msdn吧 实现的主要代码 #define MY_TRAY_ICON_ID (1)/ //其他代码:略BEGIN_MESSAGE_MAP(CTestShowTrayDlg, CDialogEx)//...ON_MESSAGE(WM_MY_TRAY_ICON, &CTestShowTrayDlg::OnMessag…...
AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)
大家好,我是小梦,最近一直研究AI绘画。 不久前,我与大家分享了StableDiffusion的全面教程:“AI绘画:Stable Diffusion 终极宝典:从入门到精通 ” 然而,仍有些读者提出,虽然他们已经…...
JS装饰器的介绍
装饰器的基本介绍 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上。 装饰器使用expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的…...
微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)
一、需求 1、如果第一是视频,不进行自动轮播 2、可以手动滑动切换 3、点击播放视频,也可以手动滑动切换 4、视频播放完后,自动轮播 5、视频可以点击暂停和全屏播放二、最终效果 三、源码 播放icon使用了TDesign组件库 1、wxml <swiper c…...
关于for in 循环会遍历原型链上的属性的问题
关于for in 循环会遍历原型链上的属性的问题 for in可遍历原型链上扩展的属性,Object.keys() 只遍历自身属性 1.使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问: Object.prototype.say"cgl"; // 修改Object.p…...
冠达管理:人民币升值板块个股?
人民币增值是当前热门的论题之一。面对这一趋势,许多投资者开端重视人民币增值板块个股的投资时机。可是,终究哪些职业和个股能够从人民币增值中获益?下面从多个视点分析这个问题。 一、出口相关职业 跟着人民币增值,我国的出口企…...
27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》
下载地址:高比例清洁能源接入下计及需求响应的配电网重构 1主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》,以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标,针对配电网重构模型的非凸性&…...
mysql的索引结构
索引概述 索引( index )是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些…...
SMT生产中基板的机械清洁处理法有哪些
在S MT贴片加工 过程中,锡育和助焊剂会产生残留物质,残留物中包含有有机酸和可分解的电离子,某中有机酸狊 有腐蚀作用,电高子难留在焊盘还会引(起短路,而且这些残留物在PCBA板上是非常脏的,而旦不符合顾客…...
微服务面试题
一、什么是微服务 二、微服务之间是如何通讯的? 2.1、同步 优点:实时性 缺点:降低了可用性,因为客户端和服务端在请求过程中必须都是可用的 2.1.1、REST 优点:开发成本低,适应异构语言 2.1.2、RPC …...
LeetCode 1132.申请的报告2
数据准备 Create table If Not Exists Actions (user_id int, post_id int, action_date date, action ENUM(view, like, reaction, comment, report, share), extra varchar(10)); create table if not exists Removals (post_id int, remove_date date); Truncate table Act…...
室内探索无人机,解决复杂环境下的任务挑战!
前言 室内探索无人机是一种专为在室内环境中进行任务的无人机系统。相比传统的人员部署,室内探索无人机具有更高的灵活性和机动性,能够在复杂的室内环境中执行任务,用于未知环境的探索和特定目标的搜索。 为完成无人机室内搜索与识别等复杂…...
操作指南 | 如何参与Moonbeam投票委托
投票委托允许没有时间或者专业度一般的用户能够在治理中拥有话语权。该功能加强了决策流程,并且确保更大范围地代表社区利益。 通过Moonbeam委托平台,你需要 $GLMR 和一个相兼容的钱包。此教程使用MetaMask示范。 如何参与投票委托 前往http://delega…...
xxl-job中多节点分片的时候如何在linux服务器开启多个执行器实例?
在 xxl-job 中,可以通过在 Linux 服务器上启动多个执行器实例来实现分布式的分片任务处理。以下是在 Linux 服务器上开启多个执行器实例的步骤: 1.复制并配置多个执行器项目模块: 复制原始的执行器项目模块,并重命名为不同的名称…...
springboot三种注入方式
在Spring Boot中,您可以使用三种主要的方式来进行依赖注入: 构造函数注入(Constructor Injection):您可以在类的构造函数中声明依赖项,然后Spring容器会在创建Bean实例时自动注入这些依赖项。这种方式通常用…...
信息化发展38
组织模型一信息系统战略 1 、信息系统战略是组织用来提供信息服务的计划。 2 、信息系统支撑组织实施其业务战略。业务战略是关于竞争(服务对象想要什么, 竞争做什么) , 定位(组织想以什么方式竞争)和能力…...
PMP含金量再升级!北京上海等地可评职称!
最近PMP证书又“升级”了,不过不是证书上的改变,而是含金量在原有基础上又上升了一个档次。 9月4日,北京市人力资源和社会保障局联合北京市人才工作局发布关于印发《北京市境外职业资格认可目录(3.0版)》的通知,PMP项目管理证书也…...
动态调用微服务
主要由三个文件组成 DynamicService.java DynamicFeignClientFactory.java DynamicClient.java 代码 package org.jeecg.modules.cloud.feign;import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; im…...
什么是字符集什么是字符编码
什么是字符集,什么是字符编码, unicode 和 utf8的区别 字符集(Character Set): 字符集是一组字符的集合,通常按照某种规则组织和分类。例如,ASCII(美国信息交换标准码)是…...
Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增查看历史记录窗口!语音播报功能!修复预览文件按钮等之前版本的bug!
文章目录 前言一、实现思路二、关键代码查看历史记录按钮语音播报按钮三、完整代码总结前言 老生常谈,先看效果:(订阅专栏可获取完整代码) 初始状态下,我们为除了【设置】外的按钮添加弹窗,提示用户在使用工具之前要先【设置】。在设置界面,我们主要修改了【预览文件】…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
