在书上看到的,觉得有用,记下了。
首先,最小化托盘的基本原理是,将应用程序的主窗体隐藏,然后在托盘中绘制应用程序的图标。然后再为托盘图标添加一些事件处理。
核心函数是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; //当用户单击托盘区图标时会向窗口发送消息