各バルーンにユーザーデータ(IDまたはボイド*)を付けることができるようにしたいので、NIN_BALLOONUSERCLICK
を受け取ったら、クリックされたバルーンを特定し、その特定の通知に意味のある操作を実行できます。私が知る限り、これはNOTIFYICONDATA
構造では不可能です。NIF_INFOを使用してShell_NotifyIconのユーザーデータを指定する方法はありますか?
答えて
は、私の知る限り、これは正しいです
NOTIFYICONDATA
構造
与えられたことはできません。 Shell_NotifyIcon()
APIには、ユーザー定義データと通知を関連付けるための規定はありません。
ただし、一度に1つのバルーンしか表示できないため、データを側面に保存して、バルーンを解除したときにデータを取得することができます。複数の通知がある場合は、何らかの種類のスタックを使用してデータを格納してから、バルーンのデータをスタックから取得します。
NIF_MESSAGE
フラグを使用するときに、個々のバルーンに異なるuCallbackMessage
値を使用し、必要に応じてウィンドウメッセージハンドラにメッセージIDを区別させることもできます。たとえば、データの配列がある場合は、一意の基本メッセージID(おそらくRegisterWindowMessage()
から配列インデックスを追加することができます)
あなたの最初の提案は、OSが通知を表示する要求が多すぎる場合に通知を表示しないようにすることを除いて、機能するかもしれません。解決策が機能しない場合は、通知アイコン全体またはバルーンごとに格納されているグローバルなメッセージIDではないかどうかを確認する必要があります(RegisterWindowMessageなどを使用してメッセージIDを使い果たしてしまいます)それらをリサイクルすることができました。これにより、誤って新しい通知に応答する可能性があります古い出来事。 – cppguy
ドキュメントからは、複数のバルーンがキューに入れられ、順番に表示され、それぞれにNIN_BALLOONSHOWとNIN_BALLOON(HIDE | TIMEOUT | USERCLICK)が表示されます。 「かなりの時間」がアクティブな場合を除いて、 'NIIF_RESPECT_QUIET_TIME'フラグを指定しない限り何も得られません。その後、「静かな時間」にバルーンを表示しようとすると' NIN_BALLOONHIDE'が得られます。 –
'Shell_NotifyIcon()'は通知ごとに異なる 'uCallbackMessage' IDを指定します。私は各通知に対してあなたが 'RegisterWindowMessage()'を呼び出すことを提案していませんでした。私はそれを**一度**と呼んで基本IDを取得し、各通知でそれにオフセットを追加することを提案しました。 –
- 1. サーブレットリクエストでユーザーデータを取得する方法はありますか?
- 2. iBooks Authorからユーザーデータを渡す方法はありますか?
- 3. SourceTreeを使用して、指定したコミットを別のブランチにリベースする方法はありますか?
- 4. os.pathのプラットフォームを指定する方法はありますか?
- 5. JavaのOverrideアノテーションを使用してオーバーロードされるインタフェース/クラスを指定する方法はありますか?
- 6. Visual Studio Team Servicesでは、変数を使用してブランチを指定する方法はありますか?
- 7. writeCloud()OpenCV関数を使用してポイントクラウドの3Dポイント座標を指定する方法はありますか?
- 8. 角度パラメータを使用してaframeオブジェクトの位置を指定する方法はありますか?
- 9. LaravelのtoArray/toDatabase関数を使用して通知属性を指定する方法はありますか?
- 10. Serverインスタンスを使用してmongodbのユーザ名とパスワードを指定する方法はありますか?
- 11. ctypesを使用してNumpy配列のメモリアドレスを指定する方法はありますか?
- 12. Mage/MageUIを使用してClickOnceアプリケーションマニフェストのアプリケーションアイコンを指定する方法はありますか?
- 13. WebClient.AsyncDownloadString() - タイムアウトを指定する方法はありますか?
- 14. C#を使用してWinForms TextBoxの指定された行にスクロールする方法はありますか?
- 15. -storepassを指定せずにjarsignを使用してjarに署名する方法はありますか?
- 16. assertJを使用して、指定フィールドを再帰的に無視する方法はありますか?
- 17. PHPを使用してソースUDPポートを指定する方法はありますか?
- 18. LINQ to SQLを使用して実行時にテーブル名を指定する方法はありますか?
- 19. resharper属性を使用してポスト条件を指定する方法はありますか?
- 20. CSSを使用してHTML5キャンバスに色を指定する方法はありますか?
- 21. リーフレットを使用してユーザーを特定する方法はありますか?
- 22. ASP.NETで指定されたstatusCodeを使用してカスタムエラーページにリダイレクトする方法はありますか?
- 23. .NETの相互運用機能で使用するCOMサーバーを指定する方法はありますか。
- 24. MyBatis Generatorを使用して、NULL値が指定されているときに列のデフォルト値を指定する方法はありますか?
- 25. valueForKeyPathステートメントで特定のオブジェクトインデックスを指定する方法はありますか?
- 26. javax.net.sslを使用してキーパスワードを指定する方法は?
- 27. WebAuthenticationCoreManagerを使用してリダイレクトURIを指定する方法は?
- 28. ライト出力を使用するときにフォントの色を指定する方法はありますか
- 29. Tensorflow、軸に沿ってパディングを指定する方法はありますか?
- 30. 特定の条件を指定してrequestAnimationFrame関数を切り替える方法はありますか?
APIの規定はありません。 –