我显示气球工具提示的代码是:
BOOL CTrayIcon::ShowBaloon(LPCTSTR 标题,LPCTSTR 文本,HICON hIcon)
{
布尔 bRes = FALSE;
如果(m_hWnd!= NULL)
{
NOTIFYICONDATA nfidata = {sizeof(NOTIFYICONDATA)};
nfidata.cbSize = sizeof(nfidata);
nfidata.hWnd = m_hWnd;
nfidata.guidItem = guid;
nfidata.uFlags = NIF_INFO | NIF_GUID;
如果(h图标)
{
nfidata.hBalloonIcon = hIcon;
nfidata.dwInfoFlags = NIIF_USER | NIIF_LARGE_ICON;
}
StringCchCopy(nfidata.szInfo, ARRAYSIZE(nfidata.szInfo), text);
StringCchCopy(nfidata.szInfoTitle, ARRAYSIZE(nfidata.szInfoTitle), 标题);
bRes = Shell_NotifyIcon(NIM_MODIFY, &nfidata);
}
返回 bRes;
}
问题是有时会在 10 秒延迟后显示气球。这仅在调试器未连接到应用程序时发生。如果我将调试器连接到应用程序,则会立即显示工具提示。我知道 Windows 7 管理气球工具提示的方式与以前的 Win 版本不同。但是我在哪里可以阅读更多关于这个的信息?我怎样才能改变这种行为?我需要在函数调用后立即显示工具提示。或者也许有 Shell_NotifyIcon 的替代品?