添加和删除任务栏图标

【勇芳软件工作室】汉化HomePreviousNext

您可以通过填写NOTIFYICONDATA结构,然后通过NIM_ADD消息发送结构,将图标添加到任务栏状态区域。结构成员必须指定添加图标的窗口的句柄,以及图标标识符和图标句柄。您还可以为图标指定工具提示文本。如果您需要接收图标的鼠标消息,请指定系统应将消息发送到窗口过程的回调消息的标识符。

以下示例中的功能演示如何将图标添加到任务栏。

// MyTaskBarAddIcon - 将图标添加到任务栏状态区域。

//如果成功返回TRUE,否则返回FALSE。

// hwnd - 窗口的句柄来接收回调消息

// uID - 图标的标识符

// hicon - 要添加的图标的句柄

// lpszTip - ToolTip文本

BOOL MyTaskBarAddIcon(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 = MYWM_NOTIFYICON;

tnid.hIcon = hicon;

如果(lpszTip)

lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip));

其他

tnid.szTip[0] = '\0';

res = Shell_NotifyIcon(NIM_ADD, &tnid);

如果(hicon)

DestroyIcon(hicon);

return res;

}

要从任务栏状态区域删除图标,请填写NOTIFYICONDATA结构,并在发送NIM_DELETE消息时将其发送到系统。删除任务栏图标时,仅指定CBSIZE的hWnduID成员,如以下示例所示。

// MyTaskBarDeleteIcon - 从任务栏中删除一个图标

//状态区域。

//如果成功返回TRUE,否则返回FALSE。

// hwnd - 添加图标的窗口的句柄

// uID - 要删除的图标的标识符

BOOL MyTaskBarDeleteIcon(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;

}