バルーン ツールチップを表示する私のコードは次のとおりです。
BOOL CTrayIcon::ShowBaloon(LPCTSTR タイトル、LPCTSTR テキスト、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; 場合 (hIcon) { 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 では、以前の Windows バージョンとは異なる方法でバルーン ツールチップを管理していることを知っています。しかし、これについてどこでもっと読むことができますか? そして、どうすればこの動作を変更できますか? 関数呼び出しの直後にツールチップを表示する必要があります。あるいは、Shell_NotifyIcon に代わるものはありますか?