2009-02-27 5 views
3

J'essaie d'obtenir une notification pour faire apparaître quelque chose comme ces bulles dans une application MFC:notifications "bulle de la parole"

unused icons bubble image

caps lock still on image http://www.humanized.com/weblog/images/caps_lock_indication.png

Je fais actuellement un interface maquette en C# pour montrer certaines parties prenantes, donc ce serait bien de l'avoir aussi.

Il ne doit pas nécessairement être la parole bulle-esque: il pourrait être quelque chose comme une info-bulle - mais il ne doit apparaître sans souris sur

Cheers!

Répondre

6

Je viens de trouver this sur CodeProject. Téléchargé l'échantillon et ça marche bien en fait. Je vais ajouter ceci à mon propre référentiel de code; Je ne sais jamais quand je pourrais avoir besoin de ça!

3

Il s'agit d'un mécanisme Windows standard (depuis XP), ils sont appelés bulles info-bulles. En fonction de l'endroit où vous souhaitez afficher le ballon, vous pouvez utiliser la méthode ShowBalloonTip de CEdit ou l'API Shell_NotifyIcon.

Il existe NotifyIcon classe dans Windows Forms, mais je ne sais pas à propos de TextBox, vous devrez probablement utiliser interop.

+0

Cela ne semble pas fonctionner - est-ce possible parce que je suis sous VS2005? – Smashery

+0

Oui, probablement, ShowBalloonTip de CEdit pourrait avoir été introduit dans VS2008. Vous pouvez utiliser HWND de CEdit et le faire en API pure. Il y a une macro Edit_ShowBalloonTip. – macbirdie

1

Vous pouvez simplement utiliser System.Windows.Forms.ToolTip.

using System.Windows.Forms; 

... 

ToolTip myTip = new ToolTip; // create tooltip 
myTip.IsBaloon = true; // give it a round shape 
myTip.SetToolTip(myTool, "You're hovering above myTool."); // register popup message for 'myTool' 
... 
myTip.Show(myTool, "Forced modal pop-up.", 1000); // display pop up message for 1 sec at 'myTool'