📄 第五章3.txt
字号:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage, // 发送的消息,它可以是:
// NIM_ADD 向托盘添加图标
// NIM_DELETE 删除托盘中的图标
// NIM_MODIFY 修改托盘中的图标
PNOTIFYICONDATA pnid // 指向NOTIFYICONDATA的结构指针
);
其中的NOTIFYICONDATA结构如下:
typedef struct _NOTIFYICONDATA {
DWORD cbSize; // 结构的字节大小
HWND hWnd; // 接收通知消息的窗口句柄
UINT uID; // 自定义的图标ID号
UINT uFlags; // 成员变量标志,当为
// NIF_ICON 表示hIcon成员变量有效
// NIF_MESSAGE 表示uCallbackMessage有效
// NIF_TIP 表示szTip成员变量有效
UINT uCallbackMessage; // 自定义的通知消息标识号
HICON hIcon; // 要删除、添加或修改的图标句柄
char szTip[64]; // 图标的提示文本
} NOTIFYICONDATA, *PNOTIFYICONDATA;
这样,当向托盘添加图标时就可以有代码过程(AddTaskBarIcon函数):
// 成功时返回TRUE,否则返回FALSE。
// 参数hwnd表示接收消息的窗口句柄,uID表示图标的标识,hicon表示要添加的图标句柄,
// lpszTip表示提示文本
BOOL AddTaskBarIcon(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip)
{
BOOL res;
NOTIFYICONDATA tnid;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = hwnd;
tnid.uID = uID;
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = WM_ICON_NOTIFY;
tnid.hIcon = hicon;
if (lpszTip)
lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip));
else
tnid.szTip[0] = '\0';
res = Shell_NotifyIcon(NIM_ADD, &tnid);
if (hicon) DestroyIcon(hicon);
return res;
}
而若要删除托盘的图标,则可有下列代码过程:
// 成功时返回TRUE,否则返回FALSE
// 参数hwnd表示窗口的句柄,uID表示要删除图标的标识
BOOL DeleteTaskBarIcon(HWND hwnd, UINT uID)
{
BOOL res;
NOTIFYICONDATA tnid;
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = hwnd;
tnid.uID = uID;
res = Shell_NotifyIcon(NIM_DELETE, &tnid);
return res;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -