我显示气球工具提示的代码是:
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 的替代品?