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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android API 中文(14) —— ViewStub

前言关键字: android.view.ViewStub,版本为Android 2.2 r1本章翻译来自唐明 ,这里本博负责整理和发布,欢迎其他译者一起参与Android API 的中文翻译行动,联系我over140gmail.com。 声明 欢迎转载,但请保留文…

stm32l0的停止模式怎么唤醒_「正点原子STM32Mini板资料连载」第十九章 待机唤醒实验...

1)实验平台:正点原子STM32mini开发板2)摘自《正点原子STM32 不完全手册(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子第十九章 待机唤醒实验本章我们将向大家介绍 STM32 的待机唤醒功能。在本章中,我们将使用 WK_UP 按…

Pgbouncer 介绍

Pgbouncer 介绍 PostgreSQL 的轻量的连接池。 特性 在轮转连接的时候有好几种方式:Session pooling/会话连接池最礼貌的方法。在客户端连接的时候,在它的连接生命期内,会给它赋予一个服务器连接。在客户端断开的时候,服务器连接会…

如何在不安装 Microsoft Office 的情况下生成 Excel 文件?

咨询区 mistrmark:我的一个项目中有导出 excel 的功能,但我发现运行代码的机器上一定要安装 Excel,否则就找不到 Microsoft.Office.Interop.Excel ,导致运行报错,请问如何解决?回答区 Mike Webb&#xff1a…

阿里全球数学竞赛落幕:全球最强73人出炉,北大获奖人数第一,还“炸出”各路世界大牛...

全世界只有3.14 % 的人关注了爆炸吧知识来源:量子位 ID:QbitAI作者:边策 金磊又是一场学霸的盛宴。阿里达摩院举办的第二届数学竞赛今天顺利结束,这场号召全民参与的数学竞赛,初赛的题目画风是这样的:是不…

c语言不通类型指针转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...

强制类型转换形式:(类型说明符) (表达式)举例说明:1) int a;a (int)1.9;2)char *b;int *p;p (int *) b; //将b的值强制转换为指向整型数据的指针类型,后赋给p注示:类型说明符和表达式都必须加括号,表达式为单个变量可…

MFC socket网络编程(流程示例)

MFC socket网络编程(流程示例) 1.TCP流式套接字的编程步骤 在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK! 服务器端程序: 1、加载套接字库 2、创建套接字(socket)。 3、将套接字…

qfiledialog文件过滤_自定义高级QFileDialog文件过滤器

QFileDialog提供了一个函数---setproxyModel。。就是用这个来玩了。就是override filterAcceptsRow的虚函数,里面定制自己的过滤需求。返回bool 下面就是判断是否是目录,只显示目录文件夹。1 #ifndef PROXY_MODEL_H2 #define PROXY_MODEL_H34 #include…

【Azure + Core】实现CI/CD(一)构建镜像并推送仓库

(海上生明月,天涯共此时)今天是农历八月十六,大家中秋节快乐!放了三天假,和家人整理下屋子,打扫下卫生,闲着无聊就研究点儿新东西。最近一直再看DevOps相关的内容,自从开…

detectron2训练自己的数据集_keras版MaskRCNN来训练自己的目标检测数据集

向AI转型的程序员都关注了这个号👇👇👇机器学习AI算法工程 公众号:datayx一、运行环境的安装:1、下载好cuda9跟cudnn7,然后在安装好后,cuda其会自动添加到环境变量里,所以使用kera…

Win7系统中必需记住的14个常用快捷键

在使用电脑时,多多少少地都会用到一些快捷键,尤其是在玩游戏,或使用一些软件时。快捷键不仅方便,如果用的好,甚至可以大大提升我们的工作效率。而且,快捷键不仅可以在软件中使用,在Win7系统中其…

git 删除远程分支

2019独角兽企业重金招聘Python工程师标准>>> git branch -r -d origin/dev git push origin :dev 注意: git push origin 后面有个空格 转载于:https://my.oschina.net/u/1176097/blog/391573

float型y取值在1.0c语言表达式,2011年全国计算机二级C语言模拟试题及答案(14)...

一、选择题(1—14每题1分,15-18每题1.5分,共20分)1.可选作用户标识符的一组标识符是()AvoidBc5_b8CForD3aDefine_53-abDOWORDIFCaseint2.在C语言中,非法的八进制是:()A.018B.016C.017D.02573.在TC中,基本inta[4]类型变…

我看过《隐秘的角落》才知道,理科生有多可怕!

全世界只有3.14 % 的人关注了爆炸吧知识最近,大家都被《隐秘的角落》刷屏了吧?但吃瓜、看瓜的背后,我看到了理科生的可怕之处。数学课上,为了暗示朱朝阳自己杀人其实是因为被背叛,张东升利用笛卡尔在爱情里或美好与悲惨…

mysql sleep详解_sql注入详解(二)

sql注入详解4、检测方法首先是判断能不能进行sql注入是哪种sql注入(1)数字型?id1 and 11 返回成功?id1 and 12 返回失败这说明是数字型注入,或者叫整型注入此时后台是select * from where id x and 11select * from where id x and 12显然一个判断为真&#x…

Visual Studio的奇淫技巧,你知道多少?

如果你像我一样,或许你也沉迷于开发者工具。这就是我喜欢 Visual Studio 的原因之一——它有无数的生产力技巧。这篇文章将展示五个这样的技巧,这些技巧对我每天的工作都有帮助。请注意,这些仅适用于 Visual Studio。有像ReSharper[1]、Rosly…

promise的状态以及api介绍_前端 api 请求缓存

作者:wsafighthttps://github.com/wsafight/personBlog/issues/2web开发时,性能都是必不可少的话题。对于webpack打包的单页面应用程序而言,我们可以采用很多方式来对性能进行优化,比方说 tree-shaking、模块懒加载、利用 extrens…

哎,累死了~..~

下午睡觉一起床,打开博客园时,才发现后台原来可以用CSS来弄主页啊,我个猪头,才发现。。。弄了一下午,终于搞了个像样的,嘿嘿,浪漫典雅,不失严谨,有点类似Metro风格&#…

RedHat el5.0 搭建 Postfix 邮件服务器系统一

RedHat el5.0 搭建 Postfix 邮件服务器系统 (postfixcyrus-sasl2courier-authlibcourier-imapextmailmaildrop) 一、系统环境 操作系统:rhel-5.2 所需软件(按网上以前的文档,好多版本都找不到&#xff…

C# 数据结构--排序[下]

希尔排序&#xff08;Shell Sort&#xff09; 排序思想&#xff1a; 先取一个小于n的整数d1作为第一个增量&#xff0c;把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序&#xff1b;然后&#xff0c;取第二个增量d2<d1重复上述的…