2009-05-23 33 views
3

バルーンツールチップを表示するようにタスクバーアイコンを強制するのはとても簡単です.Shell_NotifyIcon(NIM_MODIFY、...)を呼び出すときにNIF_INFOフラグを設定するだけでバルーンが表示されますが、問題はありません。タスクバーのバルーンを非表示にする方法

今、バルーンが必要なくなったときにバルーンを隠すことができるようにしたいが、その方法を見つけることができない。私は、NIF_INFOフラグをクリアし、Shell_NotifyIcon(NIM_MODIFY、...)を呼び出そうとしましたが、バルーンは残っていました。それは数秒後に消えてしまいますが、それは私の望むものではありません。プログラムを隠すべきだと私が思うようにすぐに隠したいのです。

バルーンを消してしまう唯一の方法は、アイコンを破棄してからタスクバーに再度追加する方法ですが、醜いです。

タスクバーアイコンを再作成せずにバルーンを非表示にすることはできますか?ありがとう。

答えて

4

はすぐnid.szInfo[0] = 0;のように、空の文字列にNOTIFYICONDATAszInfoメンバーを設定し、バルーンを隠し、Shell_NotifyIcon(NIM_MODIFY, &nid)を呼び出します。

+0

Windows 10では動作しません。 – Paul

3

通知バルーンを強制的に削除することは、ユーザーの関心を引くことができません。ユーザーがすぐに通知を見ないことがあり、数秒間に起こるゆっくりと消えていくと、バルーンがなくなる前に見て回る機会が与えられます。ユーザビリティの観点からは、バルーンの表示はアプリケーションの責任であるべきですが、バルーンの削除は実際にはユーザーの責任で行う必要があります。そうしないと、実際に見たい情報を隠してしまい、直ちにそれを強制的に隠すことで、気球が消え去っている間のユーザーの「最後のチャンス」を完全に取り除くことができます。

+0

バルーンは、ユーザーに見直す時間を与えるために適切な場所に留まるべきですが、バルーンを外すとより良い体験が得られるはずです。たとえば、自分のプログラムがサーバーに接続しようとしていることをユーザーに知らせたいとします。接続にはちょっと時間がかかることがあります。そのあと、「サーバーに接続しています...」というバルーンが上がっていないことを確認してください。実際には、それはユーザーを混乱させる可能性があります:接続はすでに行われていますが、バルーンには「接続しています...」と書かれていますが、プログラムに何か問題があるでしょうか? –

+4

バルーンを隠すのではなく、テキストを「Connected」と変更します。それでもユーザーは自分でそれを閉じることができます。 ;) – jrista

+0

これは良い考えです、ありがとう! –

関連する問題