一、托盘简介
所谓的“托盘”,在 Windows 系统界面中,指的就是下面任务条右侧,有系统时间等等的标
志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放
到托盘区。其实,托盘区的编程很简单,下面简要阐述一下子喽^_^
二、托盘编程相关函数
其实呢,把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,
再对托盘的图标进行消息处理,就可以了。
绘制图标以及确定图标所传送消息的函数只有一个,那就是——————
WINSHELLAPI BOOL WINAPI Shell_NofyIcon(
DWORD dwMessage,
PNOTIFYICONDATA pnid
);
这个函数呢,负责向系统传递消息,以添加、修改或删除托盘区的图标。她的返回值呢,
是个布尔类型的。就是说,如果返回 0,那就是成仁啦,非 0 才成功。
参数 dwMessage 是表示这个函数的应用功能是哪一方面,是添加、删除,还是修改图标。
如果是添加,则它的值为 NIM_ADD;删除则是 NIM_DELETE;而修改是 NIM_MODIFY。参数
pnid 就是具体的和程序在托盘区的图标有关系的结构了。它的定义如下:
typedef struct _NOTIFYICONDATA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
char szTip[64];
} NOTIFYICONDATA, *PNOTIFYICONDATA;
下面就对该结构各个参数进行刨析:
cbSize : 结 构 的 长 度 , 用 “ 位 ” 来 做 单 位 。 一 般 在 程 序 中 , 我 们 用
(DWORD)sizeof(NOTIFYICONDATA) 给它赋值。
HWnd : 一个句柄,如果对托盘中的图标进行操作,相应的消息就传给这个句柄所代表的窗
口。自然了,大多数情况下是 this->m_hWnd 喽。
uID : 在工程中定义的图标 ID
- 1
- 2
- 3
- 4
前往页