窗口最小化到托盘

使用notifyIcon控件和contextMenuStrip控件实现

1.将notifyIcon控件和contextMenuStrip控件拖到form上

2.在FORM的FormClosing事件

// 取消关闭窗体
e.Cancel = true;

// 将窗体变为最小化
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false; //不显示在系统任务栏
notifyIcon1.Visible = true; //托盘图标可见
notifyIcon1.ShowBalloonTip(10);//显示气泡

3.在notifyIcon1的MouseDoubleClick事件

 // 如果窗体最小化,则还原
if (this.WindowState == FormWindowState.Minimized)
{
       this.Show();
       this.WindowState = FormWindowState.Normal;
       this.ShowInTaskbar = true;
 }

4.在notifyIcon1的ContextMenuStrip属性 指定contextMenuStrip1控件

同时注意要指定icon,否则缩小后看不到

 

5.contextMenuStrip1的item按钮,实现退出功能

 //退出
 this.Close();
 Application.Exit();

6.notifyIcon的ShowBalloonTip属性,显示气泡

 7.指定notifyIcon的图标尺寸

方法一:

NotifyIcon.Icon=newIcon("c:\\你的icon.ico",16,16);

方法二:

直接改designer.cs中的自动代码为this.notIco.Icon = new System.Drawing.Icon(Resrc.C, 16, 16);

Resrc是资源文件

时间: 2024-10-01 09:49:38

窗口最小化到托盘的相关文章

关于在MFC中将窗口最小化到托盘实现原理及操作步骤_C 语言

步骤/方法 (一) 原理 1.最小化的原理:首先要将窗口隐藏,然后在右下角绘制图标. 2.恢复的原理:将窗口显示,再将托盘中的图片删除. (二)程序实现 1.自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1) 2.在MFC的 ::OnSysCommand(UINT nID, LPARAM lParam) 函数体中增加一个命令响应 if(nID==SC_MINIMIZE) ToTray(); //最小化到托盘的函数 3.在消息映射中添加 ON_ME

VC 制作系统托盘程序实现将窗口最小化到系统托盘

VC 制作系统托盘程序实现将窗口最小化到系统托盘 2008年01月11日 星期五 10:24 前段时间因为要用到系统拖盘,所以研究了一下,在这里记录一下,免得以后忘了 ^_^先在类中定义一个结构变量NOTIFYICONDATA pnid;然后在OnInitDialog进行初始化    pnid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);//该结构体大小    pnid.hWnd=m_hWnd;    //窗口句柄    pnid.uID=(UINT)m_hIcon

C#实现窗口最小化到系统托盘

关键字:C# 最小化 托盘原文:http://www.cnblogs.com/txw1958/archive/2012/12/17/csharp-minimize-tray.html 先添加notifyicon控件notifyIcon1   using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Syste

(WinForm)文件夹状态监控,最小化到托盘,开机自启动

原文 (WinForm)文件夹状态监控,最小化到托盘,开机自启动 1. 文件夾監控(監測文件夾中的文件動態): //MSDN上的例子 public class Watcher { public static void Main() { Run(); } [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] public static void Run() { string[] args = System.Environme

各种窗口最小化快捷键详解

  一.ALT+Esc 可以使当前窗口最小化. 二.Win+D 最小化所有窗口,再按一下就可以还原窗口. 三.Windows+M 最小化所有窗口 . 四.Windows+Shift+M 还原最小化的窗口. 五.Alt+空格+N 最小化当前窗口(和浏览器的最小化一样) 六.ALT+TAB 这个是切换窗口的按钮,切换到另外一个窗口,这个窗口自然也可以最小化.

dockablepane-mfc mdi窗口最小化状态恢复后没有自动刷新

问题描述 mfc mdi窗口最小化状态恢复后没有自动刷新 程序刚运行时的界面 最小化恢复以后界面 可能是垂直工具条加上以后导致的,之前好像没有这种情况 垂直工具条时用CDockablePane里面嵌一个CMFCToolbar做的,代码为 #include "stdafx.h" #include "ToolboxPane.h" #include "resource.h" CToolboxPane::CToolboxPane(void) { } CT

.net 主窗口最小化后屏幕区域出现影像错乱

问题描述 .net 主窗口最小化后屏幕区域出现影像错乱 用vb.net写了一个监控程序,在tablelayoutpanel 中加入了多个模块化的自定义控件,自定义控件带有timer定时刷新,平时最大化应用没出现过什么问题,但是当有其他窗口覆盖或者当该程序最小化之后,原来的自定义控件区域(此时该区域应该不存在焦点之类的问题)就会出现匪夷所思的影像错乱,若果点击该区域的图标位置也会出现失焦. 如图,此时监控程序最小化,同时打开我的文档(为当前活动窗口),黑块部分是原监控程序最大化时tablelayo

C#窗口最小化后还原窗口时TableLayoutPanel画屏

问题描述 如题所示,C#窗口最小化后还原窗口时TableLayoutPanel里面所有的东西都花了盼望大神指点. 解决方案 解决方案二:自己顶一下,求大神指点解决方案三:控件放多了吧.导至刷不过来了.解决方案四:如图所示,就那么几个,不至于太多吧最下面那个表格还是另一个自定义空间呢解决方案五:什么花?是闪烁吗?http://www.cnblogs.com/wuhenke/archive/2012/09/26/2704081.html解决方案六:引用4楼ajianchina的回复: 什么花?是闪烁

关于窗口最小化后、还原的问题

问题描述 需求:我自己写的一个程序(暂且叫From1),来调用第三方程序(aaa.exe)第三方程序的主画面的某个button按下后会呼出一个popUp画面,此时主画面关闭,只剩下popUp画面.然后popUp画面上按下最小化按钮.此时,在任务栏上有个矩形的"图标按钮"(别理解错了,不是指托盘图标).问题:在我的程序上怎么实现,让这个第三方程序的popUp画面显示成最小化按钮按下前popUp画面显示的状态.这里有个神奇的现象,如果你按任务栏上的"图标按钮"进行最小化