سؤال

من السهل جدا فرض أيقونة شريط المهام لعرض مجموعة أدوات بالون: كل ما أحتاج إليه هو تعيين علامة NIF_INFO عند الاتصال shell_notifyicon (nim_modifyon (nim_modify، ...)، ويبدو البالون، لا مشكلة.

الآن، أريد أن أكون قادرا على إخفاء البالون عندما لم أعد بحاجة إليه، كذلك، لكن لا يمكنني العثور على طريقة للقيام بذلك. حاولت مسح العلم NIF_INFO واستدعاء shell_notifyicon (nim_modify، ...)، ولكن بقي البالون. إنه يختفي في حد ذاته، بضع ثوان لاحقا، لكن هذا ليس ما أريد: أريد أن أخفيه على الفور، عندما يعتقد برنامجي أنه يجب إخفاؤه.

الطريقة الوحيدة لجعل البالون تختفي يبدو أنها تدمر الرمز ثم قم بإضافته إلى شريط المهام مرة أخرى، لكنه قبيح.

هل من الممكن إخفاء البالون دون إعادة إنشاء أيقونة شريط المهام؟ شكرا.

هل كانت مفيدة؟

المحلول

لإخفاء البالون على الفور، اضبط szInfo عضو في NOTIFYICONDATA إلى سلسلة فارغة، مثل nid.szInfo[0] = 0; و اتصل Shell_NotifyIcon( NIM_MODIFY, &nid ).

نصائح أخرى

أود أن أقدم ذلك ليس في مصلحة المستخدم حقا لإزالة بالون إشعار بالقوة. في بعض الأحيان لا ينظر المستخدم إلى إشعار فورا، وهذا يتلاشى بطيئا يحدث خلال شهرين يمنحهم فرصة لإلقاء نظرة على البالون. من منظور قابلية الاستخدام، يجب أن تكون عرض البالون مسؤولية التطبيق، ولكن يجب أن تكون إزالة البالون مسؤولية المستخدم حقا. خلاف ذلك، يمكنك أن تختبئ المعلومات التي كانوا مهتمين بالفعل في الرؤية، وقم بإخفاءها بالقوة على الفور، فأنت تزيل ذلك تماما "الفرصة الأخيرة" التي يتلاشى المستخدم أثناء البالونات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top