显示气球工具提示的代码是:
BOOL CTrayIcon::ShowBaloon(LPCTSTR title, LPCTSTR text, HICON hIcon) { BOOL bRes = FALSE; if(m_hWnd != NULL) { NOTIFYICONDATA nfidata = {sizeof(NOTIFYICONDATA)}; nfidata.cbSize = sizeof(nfidata); nfidata.hWnd = m_hWnd; nfidata.guidItem = guid; nfidata.uFlags = NIF_INFO | NIF_GUID; if (hIcon) { nfidata.hBalloonIcon = hIcon; nfidata.dwInfoFlags = NIIF_USER | NIIF_LARGE_ICON; } StringCchCopy(nfidata.szInfo, ARRAYSIZE(nfidata.szInfo), text); StringCchCopy(nfidata.szInfoTitle, ARRAYSIZE(nfidata.szInfoTitle), title); bRes = Shell_NotifyIcon(NIM_MODIFY, &nfidata); } return bRes; }
问题是有时气球会在延迟10秒后显示出来。仅当调试器未连接到应用程序时才会发生这种情况。如果我将调试器连接到应用程序,则会立即显示工具提示。我知道Windows 7管理气球工具提示的方式与以前的Win版本不同。但在哪里可以阅读更多相关信息?我怎样才能改变这种行为?我需要在函数调用后立即显示工具提示。或者Shell_NotifyIcon还有其他选择吗?
答案 0 :(得分:0)
如果立即看到通知至关重要,例如通知电话铃声,那么您应该设置NIF_REALTIME
标志。
但是,请注意,这也意味着如果由于某种原因无法立即显示通知,则根本不会显示通知。假设是,如果它是实时通知,则仅在其发生时才相关。
您收到电子邮件的通知不是实时事件。