delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘
1、new -->application
2、在form1中加入一个tPopMenu 命名为pm1
3、uses ShellAPI;
4、定义一个常量在
const
WM_TRAYMSG = WM_USER + 101;
5、在private中生命变量
NotifyIcon: TNotifyIconData;
6.声明两个消息
procedure TfrmMain.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_ICON then
Self.Visible := False
else
DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam);
end;
procedure TfrmMain.WMTrayMsg(var Msg: TMessage);//声明托盘消息
var
p: TPoint;
begin
case Msg.LParam of
WM_LBUTTONDOWN: Self.Visible := True; //显示窗体
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Self.Handle); //把窗口提前
GetCursorPos(p);
pm1.Popup(p.X, p.Y);
end;
end;
end;
7、oncreate中
with NotifyIcon do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := ;
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //图标、消息、提示信息
uCallbackMessage := WM_TRAYMSG;
hIcon := Application.Icon.Handle;
szTip := 'erp服务';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIcon);
//去掉关闭按钮
EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
8、ondestroy中
Shell_NotifyIcon(NIM_DELETE, @NotifyIcon);
整体代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, Menus;
const
WM_TRAYMSG = WM_USER + ;
type
TForm1 = class(TForm)
pm1: TPopupMenu;
N1: TMenuItem;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
NotifyIcon: TNotifyIconData;
procedure WMTrayMsg(var Msg: TMessage); message WM_TRAYMSG; //声明托盘消息
procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIcon);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
with NotifyIcon do
begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Self.Handle;
uID := ;
uFlags := NIF_ICON + NIF_MESSAGE + NIF_TIP; //图标、消息、提示信息
uCallbackMessage := WM_TRAYMSG;
hIcon := Application.Icon.Handle;
szTip := 'erp服务';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIcon);
//去掉关闭按钮
EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
end;
{ TForm1 }
procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_ICON then
Self.Visible := False
else
DefWindowProc(Self.Handle, Msg.Msg, Msg.WParam, Msg.LParam);
end;
procedure TForm1.WMTrayMsg(var Msg: TMessage);
var
p: TPoint;
begin
case Msg.LParam of
WM_LBUTTONDOWN: Self.Visible := True; //显示窗体
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Self.Handle); //把窗口提前
GetCursorPos(p);
pm1.Popup(p.X, p.Y);
end;
end;
end;
end.
//这是从网上找的在delphi7测试通过(引用的哪忘了)--- http://blog.csdn.net/akof1314/article/details/6411179 这个列牛B
delphi 实现最小化系统托盘(rz控件最简单 评论)
1.new -->application 2.在form1中加入一个tPopMenu 命名为pm1 3.uses ShellAPI; 4.定义一个常量在 const WM_TRAYMSG = W ...
Delphi - 利用TRzTrayIcon实现WinFrm工程最小化到托盘
第三方RC控件的安装 浏览器搜索Delphi Rz控件下载,找到下载一个安装文件,解压后点击RC3.exe一键安装. Delphi WinFrm工程最小化到托盘 Delphi新建WinFrm工程,在主 ...
VC++ 最小化到托盘、恢复
所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分.在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区. 一.托盘编程相关函数 ...
outlook新邮件到达提醒设置以及outlook最小化到托盘设置
有些邮件是需要马上处理的,因此希望能在收到邮件之后马上就知道,但是有不希望频繁的去检查有没有.outlook可以帮我们轻松做到新邮件到达提醒. 一 .设置outlook新邮件到达提醒:选项->电 ...
vc++ 最小化到托盘的详细实现
在VC++中,想实现将MFC最小化到系统托盘,需要调用NOTIFYICONDATA类,并注册相应的消息,以下详细讲解如何实现: 1.声明一个NOTIFYICONDATA类,也就是NOTIFYICOND ...
【VS开发】最小化到托盘 shell_notifyicon和NOTIFYICONDATA
shell_notifyicon和NOTIFYICONDATA Shell_NotifyIcon函数,向任务栏的状态栏发送一个消息 函数原型 BOOL Shell_NotifIcon( DWORD d ...
C++ 最小化到托盘
#define WM_SHOWTASK (WM_USER + 1) void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID &a ...
WPF实现窗口最小化到托盘,并且实现右击菜单
原版是从网上找了一位大神的,自己只是用了一点适合自己的. 具体实现 1.首先已经确认WPF中没有实现最小化托盘的类与方法,用到了winform中的程序集 using Drawing = System. ...
MFC窗口实现最小化到托盘 右键菜单和还原
//.h文件 void toTray();//最小化到托盘 void DeleteTray();//删除托盘图标 afx_msg LRESULT OnShowTask(WPARAM wParam,LP ...
随机推荐
setNeedsDisplay,setNeedsLayout
UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraph ...
jquery-validation 使用
jquery-validation 使用 一.用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: ...
用Appium进行android自动化测试
appium是开源的移动端自动化测试框架,可以测试ios,android应用.appium让移动端自动化测试不必限定在某种语言和某个具体的框架:也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来 ...
JodaTime library not available - @DateTimeFormat not supported
使用spring的@DateTimeFormat来格式化Date类型时,报错: org.springframework.validation.BindException: org.springfram ...
NodeJS服务器退出:完成任务,优雅退出
上一篇文章,我们通过一个简单的例子,学习了NodeJS中对客户端的请求(request)对象的解析和处理,整个文件共享的功能已经完成.但是,纵观整个过程,还有两个地方明显需要改进: 首先,不能共享完毕 ...
使用 Xcode 和 Android Studio 管理 iOS 和 Android 项目版本
在移动应用开发和运营的过程中,版本管理是一个老生常谈的基础问题,一些版本的基本概念也常常会困扰我们的研发和运营人员.同时,手动管理软件版本,也常常会因为不小心导致后续的发布和更新问题. 这里,我准备了 ...
动态规划(背包问题):POJ 1742 Coins
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 32955 Accepted: 11199 Descripti ...
mysql 1055
在 /etc/my.cnf 文件里加上如下: sql_mode=NO_ENGINE_SUBSTITUTION
delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘相关推荐
- pyqt5 最小化 系统托盘_PyQt5 系统托盘
import sys # 从PyQt库导入QtWidget通用窗口类,基本的窗口集在PyQt5.QtWidgets模块里. from PyQt5.QtWidgets import QApplicati ...
- pyqt5 最小化 系统托盘_Qt中如何使窗口隐藏/最小化到托盘
展开全部 功能62616964757a686964616fe78988e69d8331333361303733:窗口最小化后或者点击"hide"按钮将窗口隐藏到托盘. 通常最小化的 ...
- delphi 关闭时缩小到托盘_如何正确地缩小毛孔?
脸部皮肤粗糙是很多爱美人士存在的问题之一.而形成这个问题的原因,大多都是因为脸部毛孔太大,没有得到及时的护理或护理方式有所欠缺.那今天我就来教大家四招,如何有效的缩小毛孔大小,使皮肤变得更加光滑. 1 ...
- pyqt5 最小化 系统托盘,PyQt5:如何从系统托盘图标上下文菜单启动窗口?
我有两个独立的文件,一个创建系统托盘图标和上下文菜单,另一个创建一个接受用户输入的窗口.在 traywindow.py包含以下内容:import sys import os from PyQt5 im ...
- C# 窗口最小化到托盘及右键图标显示菜单
日常开发有时候需要实现窗口最小化到系统托盘,本文就来讲讲该如何实现winfrom最小化到系统托盘,本例子基于VS2019编写. 用C#开发winform桌面程序时,程序启动后,默认是显示在桌面而且在任 ...
- Outlook最小到系统托盘
Outlook最小到系统托盘 默认状态下outlook最小化以后在任务栏上还占一个位置,又不常用,关了又不能实时接收到邮件,可以通过以下方法隐藏到系统托盘,解决方法如下: 如果你用得是Office20 ...
- MFC窗口最小化到托盘
把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了.绘制图标以及确定图标所传送消息的函数只有一个,那就是 WINSHELLAPI BOOL W ...
- MFC程序最小化到托盘
记录下常用小功能,后续使用可以直接Ctrl+C && Ctrl+V. 简而言之:程序最小化到托盘就是先在托盘区绘制一个图标,然后把程序隐藏不见.而恢复就是将程序窗口显示,再将托盘中的图 ...
- VC对话框最小化到托盘
1.***dlg.h头文件设置: 1)public: void setTray();//设置托盘 NOTIFYICONDATA nid;//NOTIFYICONDATA结构包含了系统用来处理托盘 ...
最新文章
- IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改
- CSS权重的等级划分
- centos7中systemctl 对系统服务的控制
- MySQL 数据库修改访问权限,不能使用ip连接mysql问题处理:Host ‘host.docker.internal‘ is not allowed to connect to this ...
- 快速排序的递归和非递归的实现
- DI 之 3.4 Bean的作用域(捌)
- 还在用 Redux,要不要试试 GraphQL 和 Apollo?
- Mysql中Event的一些测试
- linux防火墙多个 多个ip配置,iptables一次性封多个ip,使用ipset 工具
- 幅频特性、相频特性的概念解释
- 校招——测试开发工程师岗位面试问题
- mflac格式解密_mflac格式是什么意思
- 一战封神快速升级攻略
- ThinkPad物理机安装Linux系统实战企业级项目之CentOS安装
- LabVIEW如何打开Acrobat PDF文件
- 学计算机当导演吗,学计算机8年 80岁老荣民当“导演”
- php计算股票均线,移动平均线——Moving Average 平均线的计算公式
- 有源淹没分析arcgis_洪涝有源淹没算法及淹没结果分析
- 从移动激光扫描数据中自动提取单棵树的双重生长方法
- office2003和office2007比较
热门文章
- 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、postgres、SQLITE
- 微软开源故事 | 开启 .NET 开源革命
- [小技巧]C#中如何为枚举类型添加描述方法
- 终于明白了 C# 中 Task.Yield 的用途
- 你需要知道的这几种 asp.net core 修改默认端口的方式
- Dependency injection in .NET Core的最佳实践
- dotnet core webapi +vue 搭建前后端完全分离web架构(一)
- 不可思议黑科技,Xamarin移动开发新时代
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
- linux内核源码剖析 博客,【Linux内存源码分析】页面迁移