最小化托盘的实现方法
来源:互联网 发布:听力复读软件 编辑:程序博客网 时间:2024/06/05 07:08
在书上看到的,觉得有用,记下了。
首先,最小化托盘的基本原理是,将应用程序的主窗体隐藏,然后在托盘中绘制应用程序的图标。然后再为托盘图标添加一些事件处理。
核心函数是Shell_NotifyIcon()函数,负责向系统传递消息,添加、修改或删除托盘区的图标。原型:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYCONDATA pnid
);
其中dwMessage标示功能,有NIM_ADD/NIM_DELETE/NIM_MODIFY。
pnid是程序最小化到托盘的图标信息结构体:
typedef struct _NOTIFYCONDATA {
DOWRD cbSize;//结构的长度
HWND hWnd;
UINT uID; //图标ID
UINT uFlags;//标志着其他哪些成员数据的有效性?
UINT uCallbackMessage;//当用户单击托盘区图标时会向窗口发送消息
HICON hIcon;//图标句柄
char szTip[64];//鼠标移动到托盘图标上时显示的文字
} NOTIFYICONDATA, *PNOTIFYICONDATA;
相关代码:
...
NOTIFYICONDATA nid;
nid.cbSize = (DWORD) sizeof (NOTIFYICONDATA);
nid.hWnd = this->m_hWnd;
nid.uID = IDR_MAINFRAME;
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; //这句我不理解?
nid.uCallbackMessage = WM_CALL;
nid.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
strcpy(nid.szTip,"MyApp");
Shell_NotifyIcon(NIM_ADD,&nid);
ShowWindow(SW_HIDE); //隐藏主窗口
...
接着自定义消息WM_CALL,方法有一篇文章有讲到。这里要注意规定了回调消息wParam接收图标ID,lParam接收鼠标的行为。
另外,当程序全部关闭时,也应该删除掉托盘,代码差不多,不重复了。
- 最小化托盘的实现方法
- VB最小化到通知栏,托盘 的方法 WinAPI实现
- C#最小化到托盘的方法
- VC中最小化到托盘的实现
- MFC程序最小化右下角托盘的实现
- 实现最小化到托盘
- rcp实现托盘最小化
- MFC实现最小化到托盘
- outlook 2006 最小化到托盘的设置方法
- C#窗体最小化到右下角托盘的方法
- C#窗体最小化到右下角托盘的方法
- win7系统中,MSN最小化到托盘的方法
- MFC中将窗口最小化到托盘的一种方法
- 总结:一个简单的MFC实现最小化托盘效果
- 最小化后右下角(托盘)小图标的实现
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
- 华为推动5G全球统一标准 预计2020年商用
- CI框架源码阅读笔记8 控制器Controller.php
- HDU4452Running Rabbits(模拟)
- 【框架-ASP.NET】ASP.NET 2014 11 19
- Java正则表达式
- 最小化托盘的实现方法
- 我的Foxit Reader也能用Vim风格的快捷键了!!
- 《浪潮之巅(上)》阅读笔记
- leetcode:Linked List Cycle II
- suspend-resume(3)
- MySql MediumBlob
- C++单例模式
- Redis过期键
- jQuery html5Validate基于HTML5表单验证插件