意志でタスクバーバルーンを非表示にする方法は?
質問
これは、バルーンツールチップを表示するには、タスクバーのアイコンを強制することは非常に簡単です:Shell_NotifyIcon(NIM_MODIFY、...)を呼び出すときに、私がする必要があるすべては、NIF_INFOフラグを設定されており、バルーンは、何の問題は表示されません。
。は、今、私はもはやとしても、それを必要としないときにバルーンを隠すことができるようにしたいが、私はそれを行うための方法を見つけることができません。私はNIF_INFOフラグをクリアすると、Shell_NotifyIcon(NIM_MODIFY、...)を呼び出してみましたが、バルーンが残りました。それは、数秒後に、それ自体で消えるんが、それは私が欲しいものではありません:私は私のプログラムは、それが非表示にする必要があると考えたときに、すぐにそれを非表示にする
バルーンが消えるようにする唯一の方法は、アイコンを破棄し、再度タスクバーに追加するように見えますが、それは醜いです。
これは、タスクバーのアイコンを再作成せずにバルーンを非表示にすることは可能ですか?おかげます。
解決
すぐに、バルーンを非表示にするにはszInfo
のように、空の文字列にNOTIFYICONDATA
のnid.szInfo[0] = 0;
メンバーを設定し、Shell_NotifyIcon( NIM_MODIFY, &nid )
を呼び出します。
他のヒント
私はその本当に利用者の最善の利益に強制的に通知バルーンを削除しないことを提供するであろう。時には、ユーザーはすぐに通知を見ていない、と数秒かけて起こる離れてその遅いフェードは彼らにバルーンがなくなって前に見てみる機会を提供します。ユーザビリティの観点から、バルーンを表示するには、アプリケーションの責任にする必要がありますが、バルーンの除去は、本当にユーザーの責任にする必要があります。そうしないと、あなたは彼らが見ることに実際に興味を持っていた情報を隠すことができ、かつ強制的にすぐにそれを隠すことによって、あなたは完全にバルーンが消えていく時に、ユーザが持っている「最後のチャンス」という削除します。